Skip to content

Commit 76be925

Browse files
committed
Exposed session in DefaultQueryProvider
1 parent 51b0567 commit 76be925

File tree

3 files changed

+9
-13
lines changed

3 files changed

+9
-13
lines changed

src/NHibernate.Test/Linq/ExpressionSessionLeakTest.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ private WeakReference DoLinqInSeparateSession()
3838
}
3939
}
4040

41-
static readonly PropertyInfo SessionProperty = typeof(DefaultQueryProvider).GetProperty(
42-
"Session",
43-
BindingFlags.NonPublic | BindingFlags.Instance);
41+
private static readonly PropertyInfo SessionProperty = typeof(DefaultQueryProvider).GetProperty(
42+
nameof(DefaultQueryProvider.Session),
43+
BindingFlags.Public | BindingFlags.Instance);
4444

4545
[Theory]
4646
public void SessionIsNotNullOrResurrected(bool? disposeSession)

src/NHibernate/Linq/DefaultQueryProvider.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public partial interface INhQueryProvider : IQueryProvider
3131
public interface ISupportFutureBatchNhQueryProvider
3232
{
3333
IQuery GetPreparedQuery(Expression expression, out NhLinqExpression nhExpression);
34-
IQueryBatch GetFutureBatch();
34+
ISessionImplementor Session { get; }
3535
}
3636

3737
/// <summary>
@@ -77,7 +77,7 @@ private DefaultQueryProvider(ISessionImplementor session, object collection, NhQ
7777

7878
public object Collection { get; }
7979

80-
protected virtual ISessionImplementor Session
80+
public virtual ISessionImplementor Session
8181
{
8282
get
8383
{
@@ -295,10 +295,5 @@ public IQuery GetPreparedQuery(Expression expression, out NhLinqExpression nhExp
295295
nhExpression = PrepareQuery(expression, out var query);
296296
return query;
297297
}
298-
299-
public IQueryBatch GetFutureBatch()
300-
{
301-
return Session.GetFutureBatch();
302-
}
303298
}
304299
}

src/NHibernate/Linq/LinqExtensionMethods.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using Remotion.Linq.Parsing.ExpressionVisitors;
99
using System.Threading;
1010
using System.Threading.Tasks;
11+
using NHibernate.Engine;
1112

1213
namespace NHibernate.Linq
1314
{
@@ -2406,7 +2407,7 @@ public static IFutureEnumerable<TSource> ToFuture<TSource>(this IQueryable<TSour
24062407
{
24072408
if (source.Provider is ISupportFutureBatchNhQueryProvider batchProvider)
24082409
{
2409-
return batchProvider.GetFutureBatch().AddAsEnumerable(source);
2410+
return batchProvider.Session.GetFutureBatch().AddAsEnumerable(source);
24102411
}
24112412
#pragma warning disable CS0618 // Type or member is obsolete
24122413
var provider = GetNhProvider(source);
@@ -2427,7 +2428,7 @@ public static IFutureValue<TSource> ToFutureValue<TSource>(this IQueryable<TSour
24272428
{
24282429
if (source.Provider is ISupportFutureBatchNhQueryProvider batchProvider)
24292430
{
2430-
return batchProvider.GetFutureBatch().AddAsValue(source);
2431+
return batchProvider.Session.GetFutureBatch().AddAsValue(source);
24312432
}
24322433
#pragma warning disable CS0618, CS0612// Type or member is obsolete
24332434
var provider = GetNhProvider(source);
@@ -2451,7 +2452,7 @@ public static IFutureValue<TResult> ToFutureValue<TSource, TResult>(this IQuerya
24512452
{
24522453
if (source.Provider is ISupportFutureBatchNhQueryProvider batchProvider)
24532454
{
2454-
return batchProvider.GetFutureBatch().AddAsValue(source, selector);
2455+
return batchProvider.Session.GetFutureBatch().AddAsValue(source, selector);
24552456
}
24562457
#pragma warning disable CS0618 // Type or member is obsolete
24572458
var expression = ReplacingExpressionVisitor

0 commit comments

Comments
 (0)