2

我正在尝试保存具有多对一属性映射的记录。我尝试在此处分配一个新创建的父对象(或使用现有的,但效果很好),但是当它尝试将父对象的 ID 添加到子表时出现错误。说它不能将 NULL 添加到表中,这是真的,但我认为 nHibernate 足够聪明,可以先保存父对象,即使我正在添加子对象。

映射:

孩子:

 <many-to-one name="parent" class="ParentClass" column="parentID" cascade="all"/>

家长:

<bag name="DataList" table="ChildTable" lazy="false" inverse="true" cascade="all-delete-orphan">
      <key column="parentID" />
      <one-to-many class="ChildClass" />
    </bag>

基本上,这是 nHibernate 可以做到的吗?

4

2 回答 2

1

我看不到你的父映射,但我敢打赌,如果你有 inverse = true 并且在那里为一组子对象打开了级联,并且你允许在你的子对象的 parentID 列中使用空值,当父母四处走动时保存它会正确更新子对象。

于 2009-05-19T11:54:11.257 回答
0

这种行为可能是由于您的主键被“分配”而不是由 Nhibernate 生成的。

于 2009-06-11T09:17:52.077 回答