据我了解,如果我删除父行,如果我在删除时打开级联,则应该删除它的子行。但是,从我的测试来看,它似乎根本不起作用。无论我将 WillCascaseOnDelete 设置为 true 还是 false,它都只是将其子项的外键设置为 null。这导致了另一个问题,我必须将外键设置为可为空,否则 SaveChange 将引发异常。这是缺陷还是期望的行为?
问问题
26160 次
2 回答
12
这是因为您的外键(子)可以为空。默认情况下,删除父级时,如果关系上的外键可以为空,EF 将删除父级并将外键设置为空。如果外键不为空,它将删除子项(您正在寻找的行为?)。
您可以在此处更改此默认行为
于 2013-09-25T16:05:12.160 回答
2
确保在 SQL Server 的外键关系窗口中,您已选择级联作为删除规则。
于 2014-02-28T23:29:25.967 回答