0
相同的表參考我有像下面的對象:刪除語句衝突以在實體框架5
public class AdminMenuItem : BaseEntity
{
public int? ParentMenuItemId { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public AdminMenuItem ParentMenuItem { get; set; }
}
我添加了兩個菜單項。一個是沒有父菜單的A.另外一個B和A是父菜單項爲B.
當我刪除一個,它引發了我的異常下面:
The DELETE statement conflicted with the SAME TABLE REFERENCE constraint "FK_dbo.AdminMenuItem_dbo.AdminMenuItem_ParentMenuItemId".
衝突發生於數據庫「A61DB」表「dbo.AdminMenuItem」, 列'ParentMenuItemId'。 聲明已被終止
我應該怎樣做才能刪除父項時刪除子項?我應該手動把它放在一個循環中嗎?還是有足夠的方法在實體框架5中做到這一點?我嘗試使用WillCascadeOnDelete但我無法成功。
還有沒有辦法將子對象的外鍵設置爲null? (這是可選的)
不能與自我參照儘管可能(HTTP:/ /stackoverflow.com/q/528529/861716) –
哦,是的,沒錯。 :) –
SQL Server也只允許一個級聯路徑,這是複雜對象圖的重要限制https://support.microsoft.com/en-us/help/321843/error-message-1785-occurs-when-you-create -a-外鍵約束,也就是說,可能原因,多級聯通道 –