我正在尝试保存具有多一对一属性映射的记录。我尝试在此处分配一个新创建的父对象(或使用现有的对象,但可以正常运行),但是当它试图将父对象的ID添加到子女表中时,我会遇到错误。说它不能在表中添加空,这是真的,但是我认为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可以做的吗?

有帮助吗?

解决方案

我看不到您的父母映射,但是如果您有倒数= true且级联在那里打开以获取一组子对象,并且当父母在父母的parentid列中允许nulls,那么我会赌注。保存它将正确更新子对象。

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top