ReportRow(親)とMark(子)の間にこの関係があります
<class name="ReportRow">
<bag name="Marks" cascade="save-update" inverse="true">
<key column="ReportRowId"/>
<one-to-many class="Mark"/>
</bag>
</class>
// C# code
public virtual IList<Mark> Marks { get; set; }
ただし、保存されていません(Markテーブルでは、ReportRowIdは常にnullです)。
NHibernateの「癖」のために、これらの関係は常に双方向でなければならないことを私は知っているので、私のMarkクラスには次のようになります。
<many-to-one name="ReportRow" class="ReportRow" column="ReportRowId" />
// C#
public virtual ReportRow ReportRow { get; set; }
この種の関係がプロジェクトの他の場所で機能している例もいくつかありますが、これは機能しておらず、それ以外の違いはわかりません...
... MarkとReportRowの両方にサブクラス(例:ModuleMarkとModuleReportRow)があり、継承を実装するために結合サブクラス戦略を使用しています。
それはそれと関係がありますか?関係の両端では、マッピングは、マッピング内にネストされるのではなく、親クラスのマッピングで定義され<joined-subclass>
ます。
ありがとう