NHibernate で以下をマッピングするにはどうすればよいですか?
私のエンティティと ERD は以下のとおりです。多対多の関係をマップする方法は知っていますが、結合テーブル ReportTargets を Datapoint テーブルにマップする方法がわかりません。ReportTargets エンティティ モデルは厳密にはドメイン エンティティではないため、存在しないことがわかります。ここでの最善の解決策は何ですか? 私はNHibernateの初心者なので、簡単にどうぞ..:)ありがとう
1 に答える
1
MarketReport.Targets には結合テーブルがあるため、多対多でマップします。
<class name="MarketReport">
<id column="reportid" />
<bag name="ReportTargets" table="reporttargets">
<key column="marketreportid"/>
<many-to-many column="targetid" class="Target"/>
</bag>
</class>
<class name="Target">
<id column="targetid" />
<bag name="DataPoints" inverse="true">
<key column="targetid"/>
<one-to-many class="DataPoint"/>
</bag>
</class>
<class name="DataPoint">
<id column="datapointid" />
</class>
あなたの最新のコメントに基づいて、三項関連またはコンポーネント コレクションのいずれかが必要です。両方のマッピングを含めました。
<class name="MarketReport">
<id column="reportid" />
<map name="ReportTargets" table="reporttargets">
<key column="marketreportid"/>
<index-many-to-many column="targetid" class="Target"/>
<many-to-many column="datapointid" class="DataPoint"/>
</map>
</class>
<class name="MarketReport">
<id column="reportid" />
<bag name="ReportTargets" table="reporttargets">
<key column="marketreportid"/>
<composite-element class="ReportTarget">
<many-to-one name="Target" column="targetid"/>
<many-to-one name="DataPoint" column="datapointid"/>
</composite-element>
</bag>
</class>
<class name="Target">
<id column="targetid" />
</class>
<class name="DataPoint">
<id column="datapointid" />
</class>
于 2010-02-24T14:01:07.217 に答える