1
我想用代碼第一個實體框架來設置一個父實體的子實體的兩個實例,每個實例都有一對一的關係。實體框架多對一
我嘗試使用以下型號: -
public class Parent
{
[Key]
public int Id { get; set; }
public virtual Child FirstChild { get; set; }
public virtual Child SecondChild { get; set; }
}
public class Child
{
[Key, ForeignKey("Parent")]
public int ParentId{ get; set; }
public Parent Parent { get; set; }
}
然而,當我嘗試將孩子添加到父,我得到以下異常: -
context.Add(new Parent
{
FirstChild = new Child(),
SecondChild = new Child()
});
context.SaveChanges();
System.Data。 Entity.Infrastructure.DbUpdateException:檢測到衝突 更改。嘗試使用相同的密鑰插入多個 實體時可能會發生這種情況。
我認爲這意味着代碼試圖將FirstChild和SecondChild都設置爲使用與父Id相同的Id,因爲它們不能同時具有相同的主鍵。有沒有辦法將模型配置爲允許兩個One to One鏈接?
我試過你的建議代碼,但是當我嘗試調用SaveChanges()時,我得到一個異常:無法確定依賴操作的有效順序。由於外鍵約束,模型要求或商店生成的值,可能會存在依存關係。 – Joe
您是否使用modelBuilder對象來配置映射? – Miguel
另外,我忘記爲各個屬性添加忽略屬性。你可以再試一次嗎? – Miguel