次のシナリオを検討してください。
クラス A は、クラス B に対して 1 対多の関係を持ちます。クラス B は、クラス C に対して多対 1 の関係を持ちます。
class A {
IList<B> BList {get;set;}
}
class B {
C CMember{get;set;}
}
class C {
//null
}
次のようなものを使用してデータベースからクラスBをロードすると
IList<B> result = query.List<B>();
すべてが期待どおりに機能し、
ただし、次のようなことをすると:
DetachedCriteria query = DetachedCriteria.For(typeof(A));
query.CreateAlias("B", "B", JoinType.InnerJoin);
IList<A> result = query.List<A>();
次に、NHibernate もテーブル C から選択し、すべての C をロードします。
以下のマッピング: マッピング...
<bag name="BList " table="B" lazy="true" inverse="false">
<key column="id" />
<one-to-many class="B" />
</bag>
B マッピング...
<many-to-one class="C" name="CMember" column="idC" lazy="proxy" outer-join="true" />
何か案は?ありがとう。