我正在刪除與外鍵鏈接的不同表中的一堆記錄。當我打電話「的SubmitChanges」收到以下錯誤:LINQ to SQL不調用DELETE
DELETE語句衝突與基準約束 FK_PTXProductMap_CustomerProduct」。該衝突發生於數據庫‘技工機構’,表 ‘dbo.PTXProductMap’,列「INSTANCEID 「 該語句已終止。
我望着探查時的SubmitChanges試圖保存的修改和刪除SQL操作不叫2條記錄執行哪些查詢。我100%肯定LINQ2SQL-'DELETE」操作被稱爲他們(我把一個斷點的線:
IEnumerable<CustomerProduct> products = DbContext.CustomerProducts
.Where(cp => cp.InstanceId == transition.InstanceId
|| cp.InstanceId == transition.PreInstanceId);
foreach (CustomerProduct cp in products)
{
DbContext.CustomerProducts.DeleteOnSubmit(cp);
}
並檢查是否調用了所需的cp對象。 DELETE被稱爲來自同一張表的另一個記錄...但不是所有要求的
你有什麼想法,爲什麼發生這種情況?以及如何解決這個問題?
歡迎任何想法。
P.S.我正在使用VS2008 SP1,64位Windows 7下的MS SQL 2005。
P.P.S.我在另一個表中檢測到與已刪除作用域鏈接的記錄中的少量記錄...包括其刪除已解決的當前錯誤,但仍不清楚爲什麼對於要刪除的所有記錄沒有生成「刪除」操作。
P.P.P.S.對另一對錶非常相似的情況:表A包含1條記錄,表B-3涉及A.1的記錄它們無法在一個事務中被刪除,但是如果我手動刪除它們(通過Management Studio)I我能夠從B中刪除3條記錄,然後從A ...中記錄爲什麼?
是的,我首先刪除子行...這沒有幫助。感謝您的鏈接。 – Budda 2010-09-03 13:48:25