实体框架在父级之前保存子级
本文关键字:保存 实体 框架 | 更新日期: 2023-09-27 18:24:14
实体框架是否支持通过下面的导航属性从下往上保存?我在ORDERID上得到一个FK约束错误,建议不要这样做。ORDERID是一个FK到ORDERID(但这不是PK)
someOrderItemEntity.OrderEntity = someOrderEntity;
someOrderItemEntity.ORDERID = someOrderEntity.ORDERID;
context.OrderItems.Add(someOrderItemEntity);
context.SaveChanges();
public partial class OrderEntity
{
public int ID { get; set; }
public int ORDERID { get; set; }
public virtual ICollection<OrderItemEntity> OrderItemEntities{ get; set; }
}
public partial class OrderItemEntity
{
public int ID { get; set; }
public int ORDERID { get; set; }
public virtual OrderEntity OrderEntity{ get; set; }
}
如果表之间有FK约束,则父OrderEntity
必须已经存在于数据库中,才能以您现在的方式添加子项。
如果您试图同时创建订单和项,那么我认为您需要将子项添加到父OrderEntity
上的OrderItemEntities
集合中。在调用SaveChanges
时,还要确保两者都在同一上下文中。