Join 可选反向联接的级联删除

Join 可选反向联接的级联删除,join,nhibernate,cascading-deletes,inverse,nhibernate-cascade,Join,Nhibernate,Cascading Deletes,Inverse,Nhibernate Cascade,我们的一个实体类有以下简化映射: <class name="Parent" table="tParent"> <id name="Id"> <column name="ParentId" sql-type="bigint"/> <generator class="native"/> </id> <join table="tOneToOneComponent" optional="t

我们的一个实体类有以下简化映射:

 <class name="Parent" table="tParent">
    <id name="Id">
      <column name="ParentId" sql-type="bigint"/>
      <generator class="native"/>
    </id>
    <join table="tOneToOneComponent" optional="true" inverse="true">
      <key column="ParentId" on-delete="cascade"/>
      <property name="Someprop"/>
    </join>
  </class>
看来,NHibernate正试图以错误的顺序删除记录


如何告诉NHibernate先删除tOneToOneComponent(如果存在),然后才删除父组件?

您想要的是默认行为,该行为被Inverse()覆盖,它告诉NHibernate,因为它拥有自己,所以不能删除其他部分。要么去掉Inverse(),要么用另一种方式处理delete

The DELETE statement conflicted with the REFERENCE constraint