我有一個遺留數據庫,我正在嘗試創建一個NHibernate DAL。 我在多對多表上映射時遇到問題。NHibernate多對多
數據庫表:
studio_Subscribers
studio_Groups
(包含訂戶的IList的)studio_Subscribers_Groups
- 許多一對多與主鍵
表中的問題是,當我創建了一個SubscriberGroup
實例並將其填入訂閱者,它們被保存到studio_Subscribers
表中,但沒有t到多對多表。
我無法弄清楚什麼是錯的?
studio_Subscribers
表映射:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Meridix.Studio.Common"
namespace="Meridix.Studio.Common">
<class name="SubscriberItem" table="studio_Subscribers">
<id name="StorageId" column="Id" unsaved-value="0" access="nosetter.camelcase">
<generator class="identity" />
</id>
<property name="Id" column="DomainId" not-null="true" />
<property name="Subscriber" column="Subscriber" not-null="true" length="50" />
<property name="Description" column="Description" not-null="false" length="100" />
<property name="Type" column="Type" not-null="true" length="40"
type="Meridix.Studio.Data.Repositories.EnumStringTypes.SubscriberTypeEst, Meridix.Studio.Data.Repositories" />
</class>
</hibernate-mapping>
studio_Groups
表映射:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Meridix.Studio.Common"
namespace="Meridix.Studio.Common">
<class name="SubscriberGroup" table="studio_Groups">
<id name="StorageId" column="Id" unsaved-value="0" access="nosetter.camelcase">
<generator class="identity" />
</id>
<property name="Id" column="DomainId" not-null="true" />
<property name="Name" column="Name" not-null="true" length="200" />
<property name="Description" column="Description" not-null="false" length="300" />
<bag name="Subscribers" table="studio_Groups_Subscribers" access="nosetter.camelcase">
<key column="GroupId"></key>
<many-to-many column="SubscriberId" class="SubscriberItem" />
</bag>
</class>
</hibernate-mapping>
jishi:你救了我。謝謝。其餘的:確保你有兩個類相互引用,定義兩邊的行李(確保一個是反面的,一個不是)。不要忘記在runtinme中設置引用:a.bList.Add(b); b.aList.Add(一); – Nils 2010-05-16 11:45:02