55using System ;
66using System . Collections ;
77using System . Collections . Generic ;
8+ using JetBrains . Annotations ;
89using Xtensive . Orm . Linq . Materialization ;
910
1011namespace Xtensive . Orm
@@ -32,10 +33,10 @@ public EnumerableReader(IEnumerable<TItem> items)
3233 }
3334
3435 private readonly StateLifetimeToken lifetimeToken ;
36+ private readonly IMaterializingReader < TItem > reader ;
3537
36-
37- // DO NOT ENUMERATE this reader anywhere outside this class
38- internal IMaterializingReader < TItem > Reader { get ; }
38+ [ CanBeNull ]
39+ internal Session Session => reader . Session ;
3940
4041 /// <inheritdoc/>
4142 IEnumerator IEnumerable . GetEnumerator ( ) => GetEnumerator ( ) ;
@@ -44,7 +45,7 @@ public EnumerableReader(IEnumerable<TItem> items)
4445 public IEnumerator < TItem > GetEnumerator ( )
4546 {
4647 EnsureResultsAlive ( ) ;
47- return Reader . AsEnumerator ( ) ;
48+ return reader . AsEnumerator ( ) ;
4849 }
4950
5051 /// <summary>
@@ -53,7 +54,7 @@ public IEnumerator<TItem> GetEnumerator()
5354 public async IAsyncEnumerable < TItem > AsAsyncEnumerable ( )
5455 {
5556 EnsureResultsAlive ( ) ;
56- var enumerator = Reader . AsAsyncEnumerator ( ) ;
57+ var enumerator = reader . AsAsyncEnumerator ( ) ;
5758 while ( await enumerator . MoveNextAsync ( ) . ConfigureAwait ( false ) ) {
5859 yield return enumerator . Current ;
5960 }
@@ -68,14 +69,14 @@ private void EnsureResultsAlive()
6869
6970 internal QueryResult ( IMaterializingReader < TItem > reader , StateLifetimeToken lifetimeToken )
7071 {
71- this . Reader = reader ;
72+ this . reader = reader ;
7273 this . lifetimeToken = lifetimeToken ;
7374 }
7475
7576 internal QueryResult ( IEnumerable < TItem > items )
7677 {
77- Reader = new EnumerableReader ( items ) ;
78- this . lifetimeToken = default ;
78+ reader = new EnumerableReader ( items ) ;
79+ lifetimeToken = default ;
7980 }
8081 }
8182}
0 commit comments