这对我来说很奇怪。我有两个实体。销售状态(父母)和销售(儿童)。
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 父子插入
我使用 dotnet 框架 4.0 / 实体框架 4.1