Nhibernate如何处理插入,更新,删除

时间:2011-07-14 15:52:34

标签: nhibernate fluent-nhibernate nhibernate-mapping

任何人都可以解释NHibernate在以下情况下的行为:

  1. 插入
  2. 更新
  3. 删除
  4. 如果带有inverss的父/子集合 - 非逆,cascadea ll,cascade all delete orphan。

    我想知道执行上述每个案例后面的规则。

    提前致谢

1 个答案:

答案 0 :(得分:2)

试试看:

NHibernate Cascades: the different between all, all-delete-orphans and save-update

或在这里:

Nhibernate Cascade

也在这里:

NHibernate Definitive Cascade application guide

<强>更新

在这里你可以找到的一个很好的解释:

Inverse Attribute in NHibernate

这些是级联差异:

  1. cascade =“none”,默认情况下,告诉Hibernate忽略关联。
  2. cascade =“save-update”告诉Hibernate在关联时导航关联 提交事务以及将对象传递给save()或 update()并保存新实例化的瞬态实例并保持更改 分离的实例。
  3. cascade =“delete”告诉Hibernate导航关联并删除持久性 将对象传递给delete()时的实例。
  4. cascade =“all”表示级联保存更新和删除,以及 要求驱逐和锁定。
  5. cascade =“all-delete-orphan”表示与cascade =“all”相同,但此外, Hibernate删除已删除的任何持久性实体实例 (取消引用)来自协会(例如,来自集合)。
  6. cascade =“delete-orphan” Hibernate将删除任何持久性实体 已从关联中删除(取消引用)的实例(for 例如,来自集合)。