使用多个外键进行级联删除

Cascading deletes with multiple foreign keys

我正在编写一个应用程序,其中我使用 Entity Framework 来处理我的数据库。

我的数据库设计如下所示:

我想使用级联删除,所以当在“客户”table中删除客户时,“租金”table中的相应行也被删除。

反之亦然,每当从“产品”table 中删除产品时,租金中的相应行也会被删除。

这可能吗?

如果是这样,Entity Framework 是否会在启用级联删除时将其设置为自动?或者我需要手动配置吗?

Is this possible?

是的。怎么样 - 以后。

If so, does Entity Framework set this up as automatedly when cascading deletes are enabled?

没有。 SQL 服务器无法使用外键约束处理它 - 只允许一个更新/删除路径。这是一个严重的限制,但可以通过一些代码解决。

您可以使用触发器做什么。 INSTEAD OF(而不是删除,执行触发器),在触发器中可以删除两个相关表,然后删除原始数据。

EF 然后工作 - 任何删除只会触发导致删除预期数据的触发器。