19

据我了解,如果我删除父行,如果我在删除时打开级联,则应该删除它的子行。但是,从我的测试来看,它似乎根本不起作用。无论我将 WillCascaseOnDelete 设置为 true 还是 false,它都只是将其子项的外键设置为 null。这导致了另一个问题,我必须将外键设置为可为空,否则 SaveChange 将引发异常。这是缺陷还是期望的行为?

4

2 回答 2

12

这是因为您的外键(子)可以为空。默认情况下,删除父级时,如果关系上的外键可以为空,EF 将删除父级并将外键设置为空。如果外键不为空,它将删除子项(您正在寻找的行为?)。

您可以在此处更改此默认行为

于 2013-09-25T16:05:12.160 回答
2

确保在 SQL Server 的外键关系窗口中,您已选择级联作为删除规则。

于 2014-02-28T23:29:25.967 回答