@@ -91,8 +91,8 @@ await sessionHandler.ExecutePrefetchTasksAsync(token).ConfigureAwait(false))) {
9191 }
9292 }
9393
94- private async Task < StrongReferenceContainer > RegisterPrefetchAsync (
95- IReadOnlyCollection < Key > keys , IHasNestedNodes fieldContainer , CancellationToken token )
94+ private async Task < StrongReferenceContainer > RegisterPrefetchAsync ( IReadOnlyCollection < Key > keys ,
95+ IHasNestedNodes fieldContainer , CancellationToken token )
9696 {
9797 var container = new StrongReferenceContainer ( null ) ;
9898 TypeInfo modelType = null ;
@@ -101,7 +101,7 @@ private async Task<StrongReferenceContainer> RegisterPrefetchAsync(
101101 }
102102
103103 foreach ( var key in keys ) {
104- var type = key . HasExactType || modelType == null
104+ var type = key . HasExactType || modelType == null
105105 ? key . TypeReference . Type
106106 : modelType ;
107107 if ( ! key . HasExactType && ! type . IsLeaf ) {
@@ -112,12 +112,15 @@ private async Task<StrongReferenceContainer> RegisterPrefetchAsync(
112112 if ( ! fieldDescriptorCache . TryGetValue ( cacheKey , out var fieldDescriptors ) ) {
113113 fieldDescriptors = PrefetchHelper
114114 . GetCachedDescriptorsForFieldsLoadedByDefault ( session . Domain , type )
115- . Concat ( fieldContainer . NestedNodes . Select ( fn => new PrefetchFieldDescriptor ( fn . Field , false , true ) ) ) . ToList ( ) ;
115+ . Concat ( fieldContainer . NestedNodes . Select ( fn => new PrefetchFieldDescriptor ( fn . Field , false , true ) ) )
116+ . ToList ( ) ;
116117 fieldDescriptorCache . Add ( cacheKey , fieldDescriptors ) ;
117118 }
119+
118120 container . JoinIfPossible (
119121 await sessionHandler . PrefetchAsync ( key , type , fieldDescriptors , token ) . ConfigureAwait ( false ) ) ;
120122 }
123+
121124 var nestedContainers = fieldContainer . NestedNodes . OfType < IHasNestedNodes > ( ) ;
122125 foreach ( var nestedContainer in nestedContainers ) {
123126 prefetchQueue . Enqueue ( new Pair < IEnumerable < Key > , IHasNestedNodes > ( keys , nestedContainer ) ) ;
@@ -131,9 +134,11 @@ private async Task<StrongReferenceContainer> ProcessFetchedElementsAsync(Cancell
131134 var container = new StrongReferenceContainer ( null ) ;
132135 while ( unknownTypeQueue . TryDequeue ( out var unknownKey ) ) {
133136 var unknownType = session . EntityStateCache [ unknownKey , false ] . Type ;
134- var unknownDescriptors = PrefetchHelper . GetCachedDescriptorsForFieldsLoadedByDefault ( session . Domain , unknownType ) ;
137+ var unknownDescriptors =
138+ PrefetchHelper . GetCachedDescriptorsForFieldsLoadedByDefault ( session . Domain , unknownType ) ;
135139 await sessionHandler . PrefetchAsync ( unknownKey , unknownType , unknownDescriptors , token ) . ConfigureAwait ( false ) ;
136140 }
141+
137142 while ( prefetchQueue . TryDequeue ( out var pair ) ) {
138143 var parentKeys = pair . First ;
139144 var nestedNodes = pair . Second ;
@@ -147,14 +152,18 @@ private async Task<StrongReferenceContainer> ProcessFetchedElementsAsync(Cancell
147152 throw new InvalidOperationException ( string . Format ( Strings . ExCannotResolveEntityWithKeyX , parentKey ) ) ;
148153 }
149154 }
155+
150156 keys . AddRange ( nestedNodes . ExtractKeys ( entityState . Entity ) ) ;
151157 }
158+
152159 container . JoinIfPossible ( await RegisterPrefetchAsync ( keys , nestedNodes , token ) . ConfigureAwait ( false ) ) ;
153160 }
161+
154162 return container ;
155163 }
156164
157- public PrefetchQueryAsyncEnumerable ( Session session , IEnumerable < TItem > source , SinglyLinkedList < KeyExtractorNode < TItem > > nodes )
165+ public PrefetchQueryAsyncEnumerable ( Session session , IEnumerable < TItem > source ,
166+ SinglyLinkedList < KeyExtractorNode < TItem > > nodes )
158167 {
159168 this . session = session ;
160169 this . source = source ;
0 commit comments