我知道在SQL Server中,當我刪除表中的父行時,我可以使用級聯刪除,但在某些地方我讀了更好地實現此邏輯在應用程序(存儲庫)中而不是在SQL Server中級聯刪除。SQL Server 2008中的C#,實體框架和刪除子註冊
所以我有兩個問題。首先,如果我不使用SQL Server中的刪除級聯,如何使用Entity Framework來解決這種情況。
- 用戶A將父寄存器及其子上下文
- 用戶B增加了一個新的子父寄存器。因此,用戶A在上下文中沒有此子女
- 用戶A刪除父母和所有在其上下文中加載的子女。這些孩子並不包括用戶B.添加新的子
那麼,在實踐中,是沒有問題的,當用戶A試圖刪除父,有一個參照完整性異常,並且需要加載所有的孩子,然後重試。
這是SQL Server的額外工作,因爲它需要再次向用戶A發送所有寄存器。
如果我在SQL Server中使用級聯刪除,這個問題不存在,所以我認爲是一個不錯的選擇。
所以我的第二個問題是,在SQL Server(或其他數據庫)上使用刪除級聯是一個好主意還是更好地在業務邏輯(存儲庫)中實現這種情況?
謝謝。