【发布时间】:2010-11-22 04:48:54
【问题描述】:
我有一个自引用课程。一个孩子有一个对它的父母的引用,一个父母有一个孩子的列表。由于子列表是有序的,我正在尝试使用 NHibernate 映射关系。
这是我的映射:
<class name="MyClass">
<id name="Id">
<generator class="native"/>
</id>
<list name="Children" cascade="delete" inverse="true">
<key column="ParentId"/>
<index column="ListOrder"/>
<one-to-many class="MyClass"/>
</list>
<many-to-one name="Parent" class="MyClass" column="ParentId"/>
</class>
我遇到的问题是当我有一个双向映射子父时,当我进行 CRUD 舞蹈时,数据库中的列表索引 (ListOrder) 没有更新。这意味着当我例如删除一个孩子,在保存到数据库并再次获取父级后,我在子级列表中出现了漏洞。如果我删除双向性,通过从子级到父级没有多对一(并且没有 inverse=true),ListOrder 会正确更新。
你们中有人见过吗?有没有简单的解决办法?
【问题讨论】:
-
它因为 inverse=true,不确定最好的解决方案是什么,目前有完全相同的问题。敬请期待
-
是的,这是因为 inverse=true。如果删除了 bidir,一切都会像我希望的那样工作,ListOrder-wise。问题是我必须自己实现 children 属性,我不想这样做。
标签: nhibernate nhibernate-mapping mapping orm