首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NHibernate -删除时将引用设置为null

NHibernate -删除时将引用设置为null
EN

Stack Overflow用户
提问于 2011-11-23 03:13:02
回答 1查看 2.6K关注 0票数 2

我有一个休眠的NHibernate-Mapping:

代码语言:javascript
复制
<class name="Activity" table="Activity" lazy="false"  >
<cache usage="read-write"/>
<id name="Id" column="Id" type="Guid">      
                <generator class="assigned"/>
</id>
<property name="Subject" column="Subject" type="String" length="255"  />
<many-to-one  name="ParentActivity" class="Activity" foreign-key="FK_Activity_ParentActivity" lazy="proxy" fetch="select">
    <column name="ParentActivityId"/>
</many-to-one>
<set name="Activities" lazy="true" inverse="true" cascade="none" >
    <key>
        <column name="ParentActivityId"/>
    </key>
    <one-to-many class="Activity"/>
</set>

我现在有一个实体活动(x),它的另一个实体活动(y)被设置为ParentActivity。我正在寻找解决方案,当我删除实体y时,从x到y的引用被设置为null。现在我变成了一个错误,因为FK_Activity_ParentActivity,我不能删除x。有人能告诉我怎么做吗?-谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-23 04:11:48

也许Ayende Rahien的这篇文章会对你有所帮助:the different between all all-delete-orphans and save-update

这里是每个级联选项的含义:

多对多无-不做任何级联,让用户通过themselves.

  • save-update处理-当对象被保存/更新时,检查关联并保存/更新任何需要它的对象(包括在多对多scenario).

  • delete中保存/更新关联-当对象被删除时,删除association.

  • delete-orphan中的所有对象-当对象被删除时,删除
  • 中的所有对象。此外,当一个对象从关联中删除并且不与另一个对象(孤立的)相关联时,也将其删除。
  • all -当一个对象被保存/更新/删除时,检查关联并保存/更新/删除所有对象found.
  • all-delete-orphan -当一个对象被保存/更新/删除时,检查关联并保存/更新/删除找到的所有对象。除此之外,当一个对象从关联中删除且不与另一个对象(孤立)相关联时,也要将其删除。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8232417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档