Envisagez le scénario suivant:Nhibernate un à plusieurs lazy loading ne fonctionne pas comme prévu
classe A a un à-plusieurs à la classe B. classe B a beaucoup à une relation à classe C.
class A {
IList<B> BList {get;set;}
}
class B {
C CMember{get;set;}
}
class C {
//null
}
Si je charge la classe B de la base de données en utilisant quelque chose comme
IList<B> result = query.List<B>();
tout fonctionne comme prévu,
Cependant, si je fais quelque chose comme:
DetachedCriteria query = DetachedCriteria.For(typeof(A));
query.CreateAlias("B", "B", JoinType.InnerJoin);
IList<A> result = query.List<A>();
puis, NHibernate sélectionnera également à partir du tableau C et charger tous les Cs.
Mappages ci-dessous: Une cartographie ...
<bag name="BList " table="B" lazy="true" inverse="false">
<key column="id" />
<one-to-many class="B" />
</bag>
mapping B ...
<many-to-one class="C" name="CMember" column="idC" lazy="proxy" outer-join="true" />
Des idées? Merci.
Vous avez obtenu votre session de mise en veille prolongée encore ouvert lorsque vous essayez d'accéder aux collections paresseux chargé? – Chris