我有一个映射和 POCO,如下所示。问题是tbFNamesFeature
保存此对象时没有更新(而tblFeature
)我尝试了不同的值cascade
,但没有效果,所以我不得不说有些东西我没有得到。(见 ??? 在 xml 中)。
我究竟做错了什么?
tbFNamesFeature
有 2 列:
FNamesId (PK, int, not null)
FeatureId (PK, int, not null)
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Feature, Infrastructure.Interface"
table="tblFeature">
<id name="Id" type="Int32" unsaved-value="0">
<column name="FeatureId" sql-type="int" not-null="true" unique="true" index="PK_tblFeature" />
<generator class="native" />
</id>
<property name="Description" type="String">
<column name="Description" length="100" sql-type="varchar" not-null="false" />
</property>
<bag name="FNames" table="tbFNamesFeature" inverse="true" lazy="false" cascade="???">
<key>
<column name="FeatureId" sql-type="int" not-null="true" />
</key>
<many-to-many class="FName, Infrastructure.Interface">
<column name="FNamesId" sql-type="int" not-null="true" />
</many-to-many>
</bag>
</class>
</hibernate-mapping>
特征.cs
public partial class Feature : System.IComparable
{
protected int id;
protected string description;
public virtual int Id
{
get { return this.id; }
set { this.id = value; }
}
public virtual string Description
{
get { return this.description; }
set { this.description = value; }
}
}
Feature.part.cs
public partial class Feature : System.IComparable
{
private System.Collections.Generic.IList<FName> fnames;
public virtual System.Collections.Generic.IList<FName> FNames
{
get
{
if (this.fnames == null)
{
this.fnames = new System.Collections.Generic.List<FName>();
}
return this.fnames;
}
set {
this.fnames = value;
}
}
}