首先在Entity Framework 7 Code中添加/插入包含複雜類型的新條目

asp.net-core ef-code-first entity-framework-core

我正在嘗試為我的對像模型添加一個新條目,它具有很少的複雜類型,首先使用EF 7代碼。但它不起作用並拋出異常。

模型:

public class Student 
{
  public int id {get; set;}
  public string Name {get; set;}
  public Address Address {get; set;} -> complex type
}

public class Address 
{
  public int Id {get;set;}
  public string Location {get;set;}
}

代碼第一代碼:

class SchoolContext {
DbSet<Student> Students {get; set;}
DbSet<Address> Addresses {get; set;}

}

var context = new SchoolContext();

context.Students.Add(new Student { Id = 1, Name = "XYZ", Address = new Address { Id = 2, Location = "US" } } -> The add method has second parameter which says include dependent objects, and by default it is true.

context.SaveChanges();

拋出異常: {“INSERT語句與FOREIGN KEY約束衝突\”FK_Student_Address_AddressId \“。衝突發生在數據庫\”School \“,table \”dbo.Address \“,列'Id'。\ r \ n聲明已被終止。“}

我認為這個錯誤意味著,數據庫中不存在Address對象,如果我先添加地址然後再添加Student,則可以正常工作。但這只是太多的代碼,因為在我的實際應用程序對像中有許多複雜的類型。

理想情況下,這應該有效,但事實並非如此。

有人可以幫我這裡。

謝謝。

一般承認的答案

根據此錯誤報告 ,您應該先添加項目。

它被認為as-designed 。至少到RC2。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow