EF 4.3 - 更新实体和子实体

时间:2013-01-09 17:51:58

标签: entity-framework entity-framework-4.3

我有一个带有子实体OrderDetail的实体Order。我想更新订单并添加新的OrderDetail。我该怎么做?

我已尝试将订单的状态设置为已修改,但我收到此错误:

发生了引用完整性约束违规:定义引用约束的属性值在关系中的主体和从属对象之间不一致。

更新: 在我添加了新的OrderDetail之后,我想更新作为主键一部分的订单类型。我试图将OrderDetail的状态设置为修改但我得到一个新的错误:

存储更新,插入或删除语句会影响意外的行数(0)。自实体加载后,实体可能已被修改或删除。刷新ObjectStateManager条目。

1 个答案:

答案 0 :(得分:0)

在将OrderDetail设置为Added之前,请先尝试将新的Order置于Modified州:

var newOrderDetail = order.OrderDetails.First();
context.Entry(newOrderDetail).State = EntityState.Added;
context.Entry(order).State = EntityState.Modified;

这可能有用 - 或者不行,具体取决于您的模型和场景的细节......