HasMany 엔티티 B와 엔티티 C가있는 엔티티 A가 있습니다. 모든 엔티티 A, B 및 C는 열심히로드해야하는 참조 x, y 및 z가 있습니다.기준 API를 사용하여 NHibernate에서 열심히 컬렉션을로드하십시오
데이터베이스에서 모든 엔티티 A를 읽고 B 및 C 콜렉션을 기준 API를 사용하여 열심히로드하고 싶습니다. 지금까지 'A'에서 참조를 열심히 가져올 수 있습니다. 그러나 콜렉션이로드 될 때 콜렉션이 지연로드됩니다. 여기
내가 아래와 같이 유창함이 사용하는 엔티티 (A)의이
AllEntities_A =
_session.CreateCriteria(typeof(A))
.SetFetchMode("x", FetchMode.Eager)
.SetFetchMode("y", FetchMode.Eager)
.List<A>().AsQueryable();
매핑 할 방법이다. _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();
에서 B & C에 대한 개인 ILists, 그리고 열심히 전체 엔티티 A를로드하고 싶습니다. 즉, 목록이있는 A의 목록을 가져와야합니다. B 및 C의 목록도 참조 속성이 열성적으로로드됩니다.
감사합니다. 방금 내가 취한 접근법을 확인했습니다. – Zuber