假设我有以下3张表:
表A、表B和表C。
表C有表A的外键。表C有表B的外键。
当我从表B中删除一行时,我希望它删除表C中的孤儿,但只有当它不包含对表A的任何引用时,我希望它删除表B中的行,并在表C中将外键设置为null。
这可能吗?它的默认行为是什么?
发布于 2014-11-24 21:29:41
您的场景是典型的“业务需求”,而不是“级联”需求。
正如这里详细讨论的那样:When/Why to use Cascading in SQL Server? (SQL梯级删除/ NHibernate级联删除的机制相同)
同样,虽然这些都是关于server上的特性的,但它们也适用于NHibernate级联特性。
因此,在您的例子中,删除有一个相当复杂的逻辑,答案应该是:
https://stackoverflow.com/questions/27118745
复制相似问题