[英]Entity Framework 6 CF: Remove One-to-Many
我的課程是這樣的:
public class Contact
{
public string Name { get; set; }
public virtual ICollection<Person> Persons { get; set; }
[Key]
public int Id { get; set; }
}
public class Person
{
public string Name { get; set; }
public virtual Contact Contact { get; set; }
public int? ContactId { get; set; }
[Key]
public int Id { get; set; }
}
當我嘗試刪除其集合中包含Person
的Contact
,我收到此錯誤:
無法刪除主鍵值,因為對該鍵的引用仍然存在。 [外鍵約束名稱 = FK_dbo.Persons_dbo.Contacts_ContactsId ]
我將ContactId
設置為int?
所以它可以為空,並且數據庫說它是一個可以為空的 FK,並且它通常可以正常工作。 就在我嘗試刪除帶有集合的實體時,我收到此錯誤。
我希望能夠刪除聯系人,但不能刪除其中的人員,我該怎么辦?
EF 的默認行為是在刪除它們的主體關系時將外鍵設為空。 但是,不會設置任何數據庫規則。 為了讓 EF 對依賴項的外鍵發出更新語句,需要將它們加載到上下文中。
因此,請確保當您刪除Contact
所有依賴的Person
實體都已加載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.