我正在尝试保存具有多对一属性映射的记录。我尝试在这里分配一个新创建的父对象(或使用现有的,但工作正常)但是当我尝试将父对象的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可以做的吗?
答案 0 :(得分:1)
我看不到你的父映射,但是如果你有一个子对象,那么你打算使用inverse = true和cascading,并在子对象的parentID列中允许空值,父母到处保存它会正确更新子对象。
答案 1 :(得分:0)
这种行为可能是由于您的主键被“分配”而不是由Nhibernate生成。