我有 3 个表:Notifications、NewItemNotifications 和 Items。
我在 NewItemNotifications 和 Items 表上设置了 ON DELETE 规则,当我删除某些项目时,它会删除 NewItemNotification 行。
问题是 Notifications 表中的父行仍然存在,我该如何处理?
问问题
446 次
1 回答
2
NewItemNotification
是依赖表 - 它永远不会通过数据库约束触发删除父记录。唯一的方法是在依赖记录被删除后写入数据库触发器NewItemNotification
以在表中执行删除。Notification
问题是如果 EF 将尝试删除此类触发器可能会导致问题,NewItemNotification
因为它不知道触发器存在。它首先删除了在没有 EF 知道的情况下NewItemNotification
触发删除项目的记录。Notification
然后 EF 将再次尝试删除Notification
记录,但该记录已被删除。我认为这会导致并发异常。
在这种情况下,最好的选择是不使用级联删除并自己处理删除。
于 2012-07-03T14:48:03.210 回答