Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在父对象之前保存子对象的实体框架_C#_Entity Framework_Entity Framework 5 - Fatal编程技术网

C# 在父对象之前保存子对象的实体框架

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

实体框架是否支持通过如下导航属性自底向上保存?我在ORDERID上得到了一个FK约束错误,表明不是。ORDERID是FK到ORDERID(但这不是PK)

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; }
}