对我来说很奇怪。 我有两个实体。 SalesStatus(父母)和Sale(儿童)。
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 framework 4.0 / entity framework 4.1
答案 0 :(得分:0)
尝试更改主键名称(SalesID为SaleID)。可能是EF配置错误的外键,
public class Sale
{
[Key]
public int SaleID { get; set; } /* this is identity column*/
//etc
}