在父/子关系中更新nhibernate的方式

时间:2016-05-28 08:47:51

标签: c# oracle nhibernate

我有两个具有父/子关系的实体(多对一)。

如果我想更新父级并删除其子级列表,它将尝试查找所有指定的记录并将其FK设置为​​Null,以便切断它们之间建立的关系。我完全没有这种方式的任何问题,因为我相信nhibernate有这种能力来处理孤立的记录,虽然这里有一点问题。

问题: FK列不可为空,因此无法设置为Null。

代码

<bag name="Child" inverse="false" lazy="false" access="property" cascade="All-delete-orphan" batch-size="1000">
      <key>
        <column name="ChildCol" not-null="true"/>
      </key>
      <one-to-many class="ChildEntityAddress"/>
    </bag>

 <many-to-one name="Parent" class="ParentEntityAddress" cascade="none" fetch="join">
      <column name="ParentCol" not-null="true"/>
    </many-to-one>

有没有解决方案来避免这个问题?

1 个答案:

答案 0 :(得分:0)

如果要将null设置为数据库中的列,则需要将其设为可为空。