0

我有 3 个表:Notifications、NewItemNotifications 和 Items。
我在 NewItemNotifications 和 Items 表上设置了 ON DELETE 规则,当我删除某些项目时,它会删除 NewItemNotification 行。
问题是 Notifications 表中的父行仍然存在,我该如何处理?

在此处输入图像描述

4

1 回答 1

2

NewItemNotification是依赖表 - 它永远不会通过数据库约束触发删除父记录。唯一的方法是在依赖记录被删除后写入数据库触发器NewItemNotification以在表中执行删除。Notification

问题是如果 EF 将尝试删除此类触发器可能会导致问题,NewItemNotification因为它不知道触发器存在。它首先删除了在没有 EF 知道的情况下NewItemNotification触发删除项目的记录。Notification然后 EF 将再次尝试删除Notification记录,但该记录已被删除。我认为这会导致并发异常。

在这种情况下,最好的选择是不使用级联删除并自己处理删除。

于 2012-07-03T14:48:03.210 回答