У меня есть сущность A, которая имеет сущности B и сущности HasMany. Все сущности A, B и C имеют некоторые ссылки x, y и z, которые следует загружать с нетерпением.
Я хочу прочитать из базы данных все объекты A и загрузить коллекции B и C с помощью API критериев.
До сих пор я могу получить ссылки в «А» с нетерпением. Но когда коллекции загружены, ссылки в них загружаются лениво.
Вот как я это делаю
AllEntities_A =
_session.CreateCriteria(typeof(A))
.SetFetchMode("x", FetchMode.Eager)
.SetFetchMode("y", FetchMode.Eager)
.List<A>().AsQueryable();
Отображение объекта A с использованием Fluent показано ниже. _B и _C являются частными IList для B & C соответственно в A.
Id(c => c.SystemId);
Version(c => c.Version);
References(c => c.x).Cascade.All();
References(c => c.y).Cascade.All();
HasMany<B>(Reveal.Property<A>("_B"))
.AsBag()
.Cascade.AllDeleteOrphan()
.Not.LazyLoad()
.Inverse()
.Cache.ReadWrite().IncludeAll();
HasMany<C>(Reveal.Property<A>("_C"))
.AsBag()
.Cascade.AllDeleteOrphan()
.LazyLoad()
.Inverse()
.Cache.ReadWrite().IncludeAll();
Я не хочу вносить изменения в файл сопоставления и хотел бы загружать всю сущность A с нетерпением. то есть я должен получить список A, где будет список B и C, чьи ссылочные свойства также будут загружены с нетерпением