1
任何帮助,你可以给非常感激地接受。我一直在反复研究这个问题,似乎无法找到解决方案。 。它可能是在盯着我的脸:(nhibernate,父母和孩子导致重复键的阶级
我曾与父母和子女的列表下面的类在层次结构表中坚持
class Item
{
public virtual int Id {get;set;}
public virtual List`<Item`> Parents {get;set;}
public virtual List`<Item`> Children {get;set;}
}
在休眠设置,我有:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Pl.Components" namespace="Pl.Components"`>
<class name="Pl.Components.Item, Pl.Components" table="Item">
<id name="Id" type="Int32" column="Id" >
<generator class="identity" />
</id>
<bag name="Parents" lazy="true" table="Hierarchy" cascade="save-update">
<key column="ChildId"/>
<many-to-many class="Item" column="ParentId" />
</bag>
<bag name="Children" lazy="true" table="Hierarchy" cascade="delete">
<key column="ParentId"/>
<many-to-many class="Item" column="ChildId"/>
</bag`>
</class>
</hibernate-mapping>
这导致重复键在层次结构表作为密钥对被插入了孩子和家长都。
有没有解决这个Ø而不是在单独的表中保留父层次结构和子层次结构?
上面的映射是当前的实现,但这会尝试在表中插入重复的parentId,childId - 为父项和子项插入。 我试过了cascade属性的各种设置。 当然,有一种方法可以为PHierachy和层次结构建模而不用单独的表格吗? – user46702 2008-12-16 17:35:52
您是否尝试过在键列上指定foreign_key名称? – Tigraine 2008-12-17 10:58:49