NHibernate级联删除其他父级

时间:2010-12-22 20:07:33

标签: c# .net nhibernate

我有A,B和C

B是A
的孩子 C是B的孩子,但B不是C的父母(即没有'有'C' - 单向关系)

C级联删除B

所以如果我:

Session.Delete(C);

B将被删除,但A仍然有一个引用它,我得到一个“将被重新保存”的例外。不管怎么说,如果没有首先从A的系列中删除B? (这不是一个大问题,只是增加了我认为不必要的额外代码)。

1 个答案:

答案 0 :(得分:1)

  

在没有首先从A的集合中删除B的情况下,有没有这个?

没有。即使从数据库中删除了B的实例,它仍然保留在代码中。删除实际上意味着在刷新会话时使其成为非持久性。如果A在打开了级联的集合中具有B实例,则在删除后将重新插入。