Skip to content

Commit 9df8b10

Browse files
author
Danko Durbić
committed
Fixed fetching all lazy properties when entity is alreday loaded
1 parent 0ec2f1d commit 9df8b10

File tree

1 file changed

+10
-16
lines changed

1 file changed

+10
-16
lines changed

src/NHibernate/Persister/Entity/AbstractEntityPersister.cs

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1409,24 +1409,18 @@ public void InitializeLazyProperties(
14091409
throw new HibernateException($"Entity is not associated with the session: {id}");
14101410
}
14111411

1412-
int[] indexes;
1413-
int[] lazyIndexes;
1414-
if (allLazyProperties)
1412+
1413+
var lazyProperties = allLazyProperties ? LazyProperties.ToArray() : uninitializedLazyProperties;
1414+
var metadata = InstrumentationMetadata.LazyPropertiesMetadata;
1415+
var indexes = new int[lazyProperties.Length];
1416+
var lazyIndexes = new int[lazyProperties.Length];
1417+
for (var i = 0; i < lazyProperties.Length; i++)
14151418
{
1416-
lazyIndexes = indexes = lazyPropertyNumbers;
1417-
}
1418-
else
1419-
{
1420-
var metadata = InstrumentationMetadata.LazyPropertiesMetadata;
1421-
indexes = new int[uninitializedLazyProperties.Length];
1422-
lazyIndexes = new int[uninitializedLazyProperties.Length];
1423-
for (var i = 0; i < uninitializedLazyProperties.Length; i++)
1424-
{
1425-
var descriptor = metadata.GetLazyPropertyDescriptor(uninitializedLazyProperties[i]);
1426-
indexes[i] = descriptor.PropertyIndex;
1427-
lazyIndexes[i] = descriptor.LazyIndex;
1428-
}
1419+
var descriptor = metadata.GetLazyPropertyDescriptor(lazyProperties[i]);
1420+
indexes[i] = descriptor.PropertyIndex;
1421+
lazyIndexes[i] = descriptor.LazyIndex;
14291422
}
1423+
14301424

14311425
var values = Hydrate(rs, id, entity, suffixedPropertyColumns, null, true, indexes, session);
14321426
for (var i = 0; i < lazyIndexes.Length; i++)

0 commit comments

Comments
 (0)