5
我正在使用EF 6在我的項目中,當我想從表中刪除一行時,它會拋出異常,因爲該行在另一個表中被引用。我想知道哪些表阻止我用c#代碼和EF刪除。如何知道哪個表阻止我用Entity Framework 6刪除一行?
我們在表A中的記錄和行表C中的引用不表B中是否有可能與EF知道將表C防止我刪除該行?
我還使用SQL-Server 2012的
我正在使用EF 6在我的項目中,當我想從表中刪除一行時,它會拋出異常,因爲該行在另一個表中被引用。我想知道哪些表阻止我用c#代碼和EF刪除。如何知道哪個表阻止我用Entity Framework 6刪除一行?
我們在表A中的記錄和行表C中的引用不表B中是否有可能與EF知道將表C防止我刪除該行?
我還使用SQL-Server 2012的
如果你試圖動態排序,這在運行時顯示用戶或刪除嘗試之前確定並不能確定可能發生的衝突,你可以使用sys表和一些動態的SQL來排序。
sys.objects
找到您的表名並獲取object_id。sys.foreign_keys
查找引用您的表的表。foreign_key_columns
以獲取引用的確切列號。sys.columns
可以獲得適當的列名稱。sys.objects
中查找的表格。可選列出行數。
三個想法:解析例外;先閱讀實體並檢查子實體;切換級聯刪除 –
如果在服務器中創建了關係,數據庫服務器(而非EF)將阻止刪除父表。運行該腳本以瞭解關係:http://stackoverflow.com/a/8095137/3142139。 –