我有一个单向多对多关联:ListDefinition类具有IList类型的Columns属性,而一个列可以是多个ListDefinition的一部分。问题是,每当我尝试从一个Columns集合中删除一个列(而不删除它或从其他ListDefinitions中删除它)时,我都会遇到以下错误:
删除的对象将通过级联重新保存(从关联中删除删除的对象)[域.列表.定义.ListColumnDefinition#2]
我的映射是通过Fluent NH生成的:
mapping.HasManyToMany(list => list.Columns)
.AsList(part => part.Column("`index`"))
.Cascade.AllDeleteOrphan()
以下是生成的hbm:
<休眠映射xmlns=“urn:nhibernate-mapping-2.2“default access=”property“auto import=”true“default cascade=”all“default lazy=”false“>
<类别xmlns=“urn:nhibernate-mapping-2.2“mutable=”true“名称=”域.列表.定义.ListDefinition,域,版本=1.0.0.0,区域性=中性,PublicKeyToken=null“表=”
ListDefinition
<id访问=“骆驼壳-下划线“name=”Id“type=”系统.Int32,mscorlib,版本=4.0.0.0,区域性=neutral,PublicKeyToken=b77a5c561934e089“>
<column name=“Id”/>
<generator class=“identity”/>
</id>
<column name=“ListDefinition\u id”/>
</key>
<列名=“
index
</index>
<多对多类=“域.列表.定义.ListColumnDefinition,域,版本=1.0.0.0,区域性=neutral,PublicKeyToken=null“>
</list>
</等级>
</hibernate映射>