@@ -20,14 +20,17 @@ public class DefaultQueryProvider : INhQueryProvider
20
20
{
21
21
private static readonly MethodInfo CreateQueryMethodDefinition = ReflectionHelper . GetMethodDefinition ( ( DefaultQueryProvider p ) => p . CreateQuery < object > ( null ) ) ;
22
22
23
+ private readonly WeakReference _session ;
24
+
23
25
public DefaultQueryProvider ( ISessionImplementor session )
24
26
{
25
- Session = session ;
27
+ _session = new WeakReference ( session , true ) ;
26
28
}
27
29
28
- protected virtual ISessionImplementor Session { get ; private set ; }
29
-
30
- #region IQueryProvider Members
30
+ protected virtual ISessionImplementor Session
31
+ {
32
+ get { return _session . Target as ISessionImplementor ; }
33
+ }
31
34
32
35
public virtual object Execute ( Expression expression )
33
36
{
@@ -47,16 +50,14 @@ public virtual IQueryable CreateQuery(Expression expression)
47
50
{
48
51
MethodInfo m = CreateQueryMethodDefinition . MakeGenericMethod ( expression . Type . GetGenericArguments ( ) [ 0 ] ) ;
49
52
50
- return ( IQueryable ) m . Invoke ( this , new [ ] { expression } ) ;
53
+ return ( IQueryable ) m . Invoke ( this , new object [ ] { expression } ) ;
51
54
}
52
55
53
56
public virtual IQueryable < T > CreateQuery < T > ( Expression expression )
54
57
{
55
58
return new NhQueryable < T > ( this , expression ) ;
56
59
}
57
60
58
- #endregion
59
-
60
61
public virtual object ExecuteFuture ( Expression expression )
61
62
{
62
63
IQuery query ;
@@ -92,7 +93,6 @@ protected virtual object ExecuteFutureQuery(NhLinqExpression nhLinqExpression, I
92
93
93
94
object result = method . Invoke ( query , new object [ 0 ] ) ;
94
95
95
-
96
96
if ( nhQuery . ExpressionToHqlTranslationResults . PostExecuteTransformer != null )
97
97
{
98
98
( ( IDelayedValue ) result ) . ExecuteOnEval = nhQuery . ExpressionToHqlTranslationResults . PostExecuteTransformer ;
0 commit comments