我正在使用實體框架鏈接到SQL Server數據庫,我使用SQL Server管理工作室來管理。刪除與SQL Server和ASP.NET MVC的多對多關係的最佳做法
我有一些多對多的關係,我用一個鏈接兩個其他表的中間表來處理。假設我有表A,表B和表A_B,它們將A和B鏈接成多對多的關係。
如果我想刪除表A中的一行,我必須刪除表B中與它鏈接的所有行,因此刪除A_B中的行。
我的問題是:
什麼是在這種情況下,最好的做法是什麼?我是否應該在MVC ASP.NET中的控制器中處理這些刪除操作,還是必須使用SQL Server觸發器來處理這些操作?
對我來說,使用觸發器並從控制器本身抽象所有這些邏輯看起來會更乾淨,所以我只需要刪除表A中的行,而較低的控制桿(SQL Server)會照顧休息。
但是,我聽到有人說我們應該避免在SQL Server中觸發器,所以在一個商業項目中,您會推薦哪種方法作爲最佳實踐?
謝謝。
編輯:
[TABLE A [ID] - > [TABLE A_B [ID_A,ID_B,位置] < - [TABLE B [ID]
這是我的情況(我目前無法發佈圖片)。我試圖在每個關係上放置刪除Cascade,但是當我刪除A中的一行時,A_B中的對應行被刪除,但不是B中對應的表。有沒有辦法做到這一點?或者在這種情況下,我必須使用觸發器?
你也可以使用[級聯刪除](http://stackoverflow.com/questions/6260688/how-do-i-use-cascade-delete-with-sql-server)。沒有最佳做法。這取決於各種因素 – Liam