У меня есть карта сущностей, где у меня есть три свойства, помеченные для Lazy-Loading. Я ожидал бы, что когда я получу доступ к отдельному свойству (например, Thumbnail), тогда будут загружены только данные этого свойства. Однако, похоже, что NHibernate загрузит все свойства, помеченные как LazyLoaded, если к любому из этих свойств будет получен доступ (то есть, доступ к Thumbnail также загружает данные HighRes и LowRes).
Есть ли способ изменить это поведение?
public sealed class LeakImageMap : ClassMap<LeakImageEntity>
{
public LeakImageMap()
{
LazyLoad();
Table("LeakImage");
Id(x => x.Id).GeneratedBy.GuidComb().UnsavedValue(Guid.Empty);
Map(x => x.FileName).Not.Nullable();
Map(x => x.FileSize).Not.Nullable();
Map(x => x.LeakId).Nullable();
Map(x => x.Thumbnail).Not.Nullable().LazyLoad();
Map(x => x.HighRes).Not.Nullable().LazyLoad();
Map(x => x.LowRes).Not.Nullable().LazyLoad();
}
}
Дополнительная информация
Доступ к изображению. Миниатюра генерирует следующий SQL:
SELECT
leakimagee_.Thumbnail as Thumbnail14_,
leakimagee_.HighRes as HighRes14_,
leakimagee_.LowRes as LowRes14_
FROM
Hvcs.LeakImage leakimagee_
WHERE
leakimagee_.Id=@p0;
@p0 = 7588d167-22b5-4f2e-b640-9ecb00ed9138 [Type: Guid (0)]
Однако, просто хотите иметь следующее:
SELECT
leakimagee_.Thumbnail as Thumbnail14_
FROM
Hvcs.LeakImage leakimagee_
WHERE
leakimagee_.Id=@p0;
@p0 = 7588d167-22b5-4f2e-b640-9ecb00ed9138 [Type: Guid (0)]