@@ -757,7 +757,8 @@ private async Task<object> InstanceNotYetLoadedAsync(DbDataReader dr, int i, ILo
757
757
758
758
ILoadable concretePersister = await ( GetConcretePersisterAsync ( dr , i , persister , key . Identifier , session , cancellationToken ) ) . ConfigureAwait ( false ) ;
759
759
760
- if ( optionalObjectKey != null && key . Equals ( optionalObjectKey ) )
760
+ bool useOptionalObject = optionalObjectKey != null && key . Equals ( optionalObjectKey ) ;
761
+ if ( useOptionalObject )
761
762
{
762
763
// its the given optional object
763
764
obj = optionalObject ;
@@ -773,8 +774,8 @@ private async Task<object> InstanceNotYetLoadedAsync(DbDataReader dr, int i, ILo
773
774
// (but don't yet initialize the object itself)
774
775
// note that we acquired LockMode.READ even if it was not requested
775
776
LockMode acquiredLockMode = lockMode == LockMode . None ? LockMode . Read : lockMode ;
776
- await ( LoadFromResultSetAsync ( dr , i , obj , concretePersister , key , acquiredLockMode , persister , session , cancellationToken ) ) . ConfigureAwait ( false ) ;
777
-
777
+ await ( LoadFromResultSetAsync ( dr , i , obj , concretePersister , key , acquiredLockMode , persister , session , useOptionalObject , cancellationToken ) ) . ConfigureAwait ( false ) ;
778
+
778
779
// materialize associations (and initialize the object) later
779
780
hydratedObjects . Add ( obj ) ;
780
781
@@ -886,7 +887,7 @@ internal static async Task UpdateCacheForEntityAsync(
886
887
/// </summary>
887
888
private async Task LoadFromResultSetAsync ( DbDataReader rs , int i , object obj , ILoadable persister , EntityKey key ,
888
889
LockMode lockMode , ILoadable rootPersister ,
889
- ISessionImplementor session , CancellationToken cancellationToken )
890
+ ISessionImplementor session , bool lazyPropertiesAreUnfetched , CancellationToken cancellationToken )
890
891
{
891
892
cancellationToken . ThrowIfCancellationRequested ( ) ;
892
893
object id = key . Identifier ;
@@ -912,7 +913,7 @@ private async Task LoadFromResultSetAsync(DbDataReader rs, int i, object obj, IL
912
913
913
914
object rowId = persister . HasRowId ? rs [ EntityAliases [ i ] . RowIdAlias ] : null ;
914
915
915
- TwoPhaseLoad . PostHydrate ( persister , id , values , rowId , obj , lockMode , session ) ;
916
+ TwoPhaseLoad . PostHydrate ( persister , id , values , rowId , obj , lockMode , lazyPropertiesAreUnfetched , session ) ;
916
917
}
917
918
918
919
/// <summary>
0 commit comments