我有A,B和C
B是A
的孩子
C是B的孩子,但B不是C的父母(即没有'有'C' - 单向关系)
C级联删除B
所以如果我:
Session.Delete(C);
B将被删除,但A仍然有一个引用它,我得到一个“将被重新保存”的例外。不管怎么说,如果没有首先从A的系列中删除B? (这不是一个大问题,只是增加了我认为不必要的额外代码)。
答案 0 :(得分:1)
在没有首先从A的集合中删除B的情况下,有没有这个?
没有。即使从数据库中删除了B的实例,它仍然保留在代码中。删除实际上意味着在刷新会话时使其成为非持久性。如果A在打开了级联的集合中具有B实例,则在删除后将重新插入。