0

這對我來說很奇怪。 我有兩個實體。 SalesStatus(父)和銷售(子)。EF代碼帶標識列的第一個父 - 子插入(HELP)

public class SalesStatus 
{ 
    [Key] 
    public int SalesStatusID { get; set; } /* this is identity column*/ 

    public string Status { get; set; } 

    public virtual List<Sale> Sales { get; set; } 
} 

public class Sale 
{ 
    [Key] 
    public int SalesID { get; set; } /* this is identity column*/ 

    //etc 
} 




SalesContext db = new SalesContext(); 

var ss = new SalesStatus 
{ 
    Status = "INQ", 

     Sales = new List<Sale>() 
}; 

ss.Sales.Add(sale); 
db.SalesStatus.Add(ss); 
db.Entry(ss).State = EntityState.Added; 
db.SaveChanges(); 

我有錯誤。 實體框架試圖用PK值插入新記錄。 「不能在表中插入標識列的顯式值」

但是,當我將EntityState更改爲EntityState.Detached或EntityState.Unchanged。 (無銷售狀態)

我一直很困惑。

我在下面找到了一些情況。但它不適用於我的情況。 EF Code First Parent-Child insertions with identity columns

我用的dotnet框架4.0 /實體框架4.1

回答

0

嘗試改變主鍵的名稱(SalesID到SaleID)。可能是EF配置錯誤的外鍵,

public class Sale 
{ 
    [Key] 
    public int SaleID { get; set; } /* this is identity column*/ 

    //etc 
}