1

实体框架是否支持通过如下导航属性自下而上进行保存?我在 ORDERID 上收到一个 FK 约束错误,提示不是。ORDERID 是 ORDERID 的 FK(但这不是 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; }
}
4

1 回答 1

2

如果表之间有 FK 约束,则父OrderEntity项必须已经存在于数据库中,才能按照您的方式添加子项。

如果您尝试同时创建订单和项目,那么我认为您需要将子项添加到OrderItemEntitiesparent 的集合中OrderEntity。还要确保在调用时两者处于相同的上下文中SaveChanges

于 2013-07-22T22:30:26.700 回答