C# 在父对象之前保存子对象的实体框架
实体框架是否支持通过如下导航属性自底向上保存?我在ORDERID上得到了一个FK约束错误,表明不是。ORDERID是FK到ORDERID(但这不是PK)C# 在父对象之前保存子对象的实体框架,c#,entity-framework,entity-framework-5,C#,Entity Framework,Entity Framework 5,实体框架是否支持通过如下导航属性自底向上保存?我在ORDERID上得到了一个FK约束错误,表明不是。ORDERID是FK到ORDERID(但这不是PK) someOrderItemEntity.OrderEntity=someOrderEntity; someOrderItemEntity.ORDERID=someOrderEntity.ORDERID; 添加(someOrderItemEntity); SaveChanges(); 公共部分类OrderEntity { 公共int ID{get
someOrderItemEntity.OrderEntity=someOrderEntity;
someOrderItemEntity.ORDERID=someOrderEntity.ORDERID;
添加(someOrderItemEntity);
SaveChanges();
公共部分类OrderEntity
{
公共int ID{get;set;}
公共int-ORDERID{get;set;}
公共虚拟ICollection OrderItemEntities{get;set;}
}
公共部分类OrderItemEntity
{
公共int ID{get;set;}
公共int-ORDERID{get;set;}
公共虚拟OrderEntity OrderEntity{get;set;}
}
如果表之间存在FK约束,则父级OrderEntity
必须已经存在于数据库中,才能按您的方式添加子项
如果您试图同时创建订单和项目,那么我认为您需要将子项添加到父级
OrderEntity
上的OrderEntity
集合中。另外,在调用SaveChanges
时,请确保两者都处于相同的上下文中。您试图向其添加项目的父级OrderEntity
是否已经存在,或者您正在尝试同时创建它?@BrianRogers-正在尝试同时创建它。
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; }
}