簡體   English   中英

Entity Framework 6 CF:刪除一對多

[英]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; }
}

當我嘗試刪除其集合中包含PersonContact ,我收到此錯誤:

無法刪除主鍵值,因為對該鍵的引用仍然存在。 [外鍵約束名稱 = FK_dbo.Persons_dbo.Contacts_ContactsId ]

我將ContactId設置為int? 所以它可以為空,並且數據庫說它是一個可以為空的 FK,並且它通常可以正常工作。 就在我嘗試刪除帶有集合的實體時,我收到此錯誤。

我希望能夠刪除聯系人,但不能刪除其中的人員,我該怎么辦?

EF 的默認行為是在刪除它們的主體關系時將外鍵設為空。 但是,不會設置任何數據庫規則。 為了讓 EF 對依賴項的外鍵發出更新語句,需要將它們加載到上下文中。
因此,請確保當您刪除Contact所有依賴的Person實體都已加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM