我是新來NHibernate並發現它非常有趣。我一直試圖將對象持久化到映射表(這個表在關係數據庫設計中打破了多對多關係),但迄今爲止還沒有這樣做。不過,我可以使用我當前的hibernate-mapping從映射表中檢索數據。幫助與NHibernate插入/更新
這裏是我的數據庫是什麼樣子:
組(的groupId,組名) 報告(reportID,所以reportName) GroupReports(的groupId,reportId)在數據建模方面
非常典型的,簡單的關係。
我知道這個問題已經被問了很多次,我看過很多很多。相信我,我真的。
這是我對集團實體類的映射:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DataTransfer" namespace="DataTransfer">
<class name="DataTransfer.Group, DataTransfer" table="GROUPS">
<id name="GroupId">
<column name="groupId" sql-type="int" not-null="true"/>
<generator class="native"/>
</id>
<property name="GroupName" column="groupName" type ="string" length="150" not-null="true"/>
<bag name="Reports" cascade="none" inverse="true">
<key column="groupId"/>
<many-to-many column="reportId" class="DataTransfer.Report, DataTransfer"/>
</bag>
</class>
</hibernate-mapping>
而且我對報告實體類映射如下喜歡:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DataTransfer" namespace="DataTransfer">
<class name="DataTransfer.Report, DataTransfer" table="REPORTS" >
<id name="ReportId" column="reportId" type="int" unsaved-value="0">
<generator class="native"/>
</id>
<property name = "ReportName" column="reportName" type="string" length="250" not-null="true"/>
<bag name="MappedGroups" table="GroupReports" cascade="all" inverse="false" lazy="true">
<key column="reportId"/>
<many-to-many class="DataTransfer.Group, DataTransfer" column="groupId" />
</bag>
</class>
</hibernate-mapping>
據我已閱讀,這些映射應該允許我既要從關聯表GroupReports中檢索並保存映射數據。我的單元測試代碼只顯示選擇SQL語句,沒有插入到映射表中。
鑑於我的映射,什麼應該做堅持的映射數據?
(注意OP已經重新添加此答覆更新) –