2012-07-03 50 views
0

我有3個表格:Notifications,NewItemNotifications和Items。
我已經在NewItemNotifications和Items表上刪除了NewItemNotification行,當我刪除某個項目時,設置了ON DELETE規則。
問題是Notifications表中的父行仍然存在,我該如何處理?SQL Server ON刪除和繼承

enter image description here

回答

2

NewItemNotification依賴表 - 它永遠通過數據庫約束觸發父記錄的刪除。唯一的方法是在刪除相關記錄後,編寫NewItemNotification上的數據庫觸發器以在Notification表中執行刪除操作。

問題是,如果EF將嘗試刪除NewItemNotification,因爲它不知道觸發器的存在,此類觸發器可能會導致問題。它首先刪除了NewItemNotification記錄,該記錄觸發刪除Notification項目而沒有EF知道它。 EF將再次嘗試刪除Notification記錄,但該記錄已被刪除。我認爲這會導致併發異常。

在這種情況下,最好的選擇是不使用級聯刪除和處理刪除你自己。