Nhibernate如何进行插入、更新和删除

Nhibernate如何进行插入、更新和删除,nhibernate,fluent-nhibernate,nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,有人能解释NHibernate在以下情况下的行为吗: 插入 更新 删除 如果父/子集合具有inverse-non inverse,则cascada ll,cascade all delete孤立项 我想知道执行上述每种情况所遵循的规则 提前感谢试试看这里: 或在此: 这里也有: 更新 在这里,您可以找到一个很好的反向解释: 这些是级联差异: 默认设置为cascade=“none”,告诉Hibernate忽略关联 cascade=“save update”告诉Hibernate在 事务被提

有人能解释NHibernate在以下情况下的行为吗:

  • 插入
  • 更新
  • 删除
  • 如果父/子集合具有inverse-non inverse,则cascada ll,cascade all delete孤立项

    我想知道执行上述每种情况所遵循的规则

    提前感谢

    试试看这里:

    或在此:

    这里也有:

    更新

    在这里,您可以找到一个很好的反向解释:

    这些是级联差异:

  • 默认设置为cascade=“none”,告诉Hibernate忽略关联
  • cascade=“save update”告诉Hibernate在 事务被提交,并且当对象被传递到save()或 update()并保存新实例化的临时实例,并将更改持久化到 分离实例
  • cascade=“delete”告诉Hibernate导航关联并删除持久性 将对象传递给delete()时的实例
  • cascade=“all”表示级联保存更新和删除,以及 调用逐出和锁定
  • cascade=“all delete orphan”的意思与cascade=“all”相同,但除此之外, Hibernate删除任何已删除的持久实体实例 (取消引用)从关联(例如,从集合)
  • cascade=“delete orphan”Hibernate将删除任何持久实体 已从关联中删除(取消引用)的实例(对于 例如,来自一个集合)

  • 感谢Danyolgiax提供的链接,但我想了解NHibernate如何决定执行sql语句,以及如何安排sql语句。例如,在我们有一对多关系或父/子集合的情况下,如果我们将其映射为带逆或不带逆、带Cascade All、Cascade alldeleteOrphan或不带Cascade,那么情况会是什么?在每种情况下,Nhibernate将采取什么决策,以及生成的sql语句的顺序是什么。谢谢,请引述您的信息来源以了解级联差异。它们似乎是从行动中的Hibernate中找到的。@fgb我在谷歌上找到的