2010-01-05 50 views

回答

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文檔瞭解更多詳情。

相關問題