nHibernate:在创建子对象时保存新的父对象

时间:2009-05-19 11:40:35

标签: c# nhibernate nhibernate-mapping entity-relationship

我正在尝试保存具有多对一属性映射的记录。我尝试在这里分配一个新创建的父对象(或使用现有的,但工作正常)但是当我尝试将父对象的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可以做的吗?

2 个答案:

答案 0 :(得分:1)

我看不到你的父映射,但是如果你有一个子对象,那么你打算使用inverse = true和cascading,并在子对象的parentID列中允许空值,父母到处保存它会正确更新子对象。

答案 1 :(得分:0)

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