因此,在我的數據庫的根目錄中,我有一個表格「客戶」。客戶的外鍵會轉到大約6-7個其他表格,如收據,地址,文檔等。如果我要使用SubmitChanges()刪除一個客戶,是否會用外鍵關聯查找所有這些記錄並將其刪除,或者我需要做6個查詢?從LINQ DB中刪除是否也刪除其他具有外鍵關聯的表中的記錄?
0
A
回答
2
,如果你已經設置了數據庫中的表與級聯刪除您這樣做只會發生(即on delete cascade
)。
欲瞭解更多信息,請參閱Insert, Update, and Delete Operations (LINQ to SQL):
的LINQ to SQL不支持或 識別級聯刪除操作。 如果你想在有反對它約束的表 刪除行,你 必須要麼設置ON DELETE CASCADE 規則的外鍵約束在 數據庫,或者使用自己的代碼來 先刪除子對象 禁止刪除父對象 。否則,拋出異常是 。
0
你有什麼樣的級聯作用的那些外鍵關係?
默認情況下,大多數數據庫系統(包括我認爲使用的SQL Server)不會有任何「ON DELETE CASCADE」或任何其他操作 - 所以在這種情況下,什麼都不會發生。
這件T-SQL查詢將顯示您的外鍵關係以及任何刪除或更新參照動作是否已經被定義爲:
SELECT
name 'FK Constraint',
OBJECT_NAME(parent_object_id) 'Parent table',
OBJECT_NAME(referenced_object_id) 'Referenced table',
delete_referential_action ,
delete_referential_action_desc ,
update_referential_action ,
update_referential_action_desc
FROM
sys.foreign_keys
如果想一些事情發生,你需要確定那些FK關係被設置爲使用這些級聯動作。
參見Cascading Referential Integrity Constraints MSDN文檔瞭解更多詳情。
相關問題
- 1. 如何刪除與其他表具有外鍵關係的所有()記錄
- 2. 休眠:從關聯表中刪除記錄與外鍵
- 3. 使用外鍵刪除時從其他表中刪除
- 4. 從具有其他表的外鍵的表中刪除重複的行嗎?
- 5. 刪除主鍵也刪除外鍵
- 6. 在PHP中刪除從關聯數組鍵的特定記錄
- 7. 刪除所有關聯的記錄
- 8. 刪除沒有關聯的記錄
- 9. 刪除行時如何刪除其他表中的所有關聯行? LARAVEL 5.4
- 10. mysql的刪除所有記錄刪除外鍵
- 11. 從表1刪除和表2中關聯的記錄
- 12. 刪除/截斷有外鍵的表中的記錄
- 13. 已刪除的記錄沒有從列表中刪除
- 14. 在git中刪除分支是否將其從歷史記錄中刪除?
- 15. 在不刪除其他Access表中的相關記錄的情況下刪除記錄
- 16. 刪除相關的記錄刪除原來的Rails中的has_many關聯getter後
- 17. 在CakePHP中使用PatchEntity從關聯表中刪除記錄
- 18. 如何刪除具有外鍵的連接表中的記錄Asp.Net
- 19. 如何刪除表中的一行時刪除所有相關的表記錄?
- 20. 從Access中的表中刪除記錄
- 21. 從臨時表中刪除記錄時將被刪除的所有記錄
- 22. 從表中刪除所有記錄 - doCMD.RunSQL
- 23. 從mysql表中刪除所有記錄
- 24. 從所有表中刪除記錄ID
- 25. 從具有外鍵約束的MySQL表中刪除
- 26. 從兩個具有外鍵約束的表中刪除
- 27. 如何從表中刪除具有自引用外鍵的行
- 28. 從有相關表的表中刪除記錄
- 29. SQL:刪除具有無效外鍵的記錄
- 30. 如何刪除關聯而不刪除與多對多關係中的記錄?