jmw*_*jmw 5 nhibernate-mapping
我有一个遗留数据库,我正在尝试创建一个NHibernate DAL.我对"多对多"表上的映射存在问题.
数据库表:
studio_Subscribersstudio_Groups (包含一个IList of Subscribers)studio_Subscribers_Groups - 具有主键的多对多表问题是,当我创建一个SubscriberGroup实例并用Subscribers填充它们时,它们会保存到studio_Subscribers表中,但不会保存到" 多对多"表中.
我弄清楚什么是错的?
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>
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
难道您的订阅者不应该有一个与该组具有多对多关系的合适包吗?
<bag name="Groups" table="studio_Groups_Subscribers" access="nosetter.camelcase">
<key column="SubscriberId"></key>
<many-to-many column="GroupId" class="GroupItem" />
</bag>
Run Code Online (Sandbox Code Playgroud)
并且可能在您的 SubscriberItems 集合上有一个cascade =“save-update”,以便保存组将使用来自“另一方”的适当关系更新您的孩子。
| 归档时间: |
|
| 查看次数: |
11740 次 |
| 最近记录: |