这对我来说很奇怪。我有两个实体。SalesStatus(父项)和销售(子项)。
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时。已成功单独插入子实体(销售)。(不带SalesStatus)
我一直都很困惑。
我在下面找到了一些案例。但这对我的案子不管用。EF Code First Parent-Child insertions with identity columns
我使用的是dotnet框架4.0 /实体框架4.1
发布于 2013-01-02 19:57:17
尝试更改主键名称(将SalesID更改为SaleID)。可能是EF配置外键错误,
public class Sale
{
[Key]
public int SaleID { get; set; } /* this is identity column*/
//etc
}https://stackoverflow.com/questions/14120520
复制相似问题