C# 使用GraphDiff更新两个相关表中的数据

C# 使用GraphDiff更新两个相关表中的数据,c#,entity-framework,graphdiff,C#,Entity Framework,Graphdiff,我有两张表,Order和OrderItems Order表有一个OrderId列,它是主键 OrderItems也将此列作为外键 对于给定的订单,如果OrderId为1且有两项,则OrderItems表 将有两行,每行的OrderID为1 我使用EF创建了一个包含两个表的上下文 现在,Order表和OrderItems表都有一个Status列 我想使用GraphDiff更新此值,如下所示: using (var ordersContext = new OrdersContext()) {

我有两张表,Order和OrderItems

Order表有一个OrderId列,它是主键 OrderItems也将此列作为外键

对于给定的订单,如果OrderId为1且有两项,则OrderItems表 将有两行,每行的OrderID为1

我使用EF创建了一个包含两个表的上下文

现在,Order表和OrderItems表都有一个Status列

我想使用GraphDiff更新此值,如下所示:

using (var ordersContext = new OrdersContext())
{
    ordersContext.UpdateGraph(orderToUpdate, map => map.OwnedCollection(p => p.OrderItems));
    ordersContext.SaveChanges();
}
这就产生了以下例外情况:

GraphDiff supports detached entities only at this time. Please try AsNoTracking() or detach your entites before calling the UpdateGraph method
有什么线索吗


提前感谢。

异常意味着orderToUpdate或相关属性很可能已附加到上下文或上下文的另一个实例。在调用此代码之前,您需要了解如何检索或生成orderToUpdate

例如,如果你这样做了

var ordersContext = new OrdersContext();
var orderToUpdate = ordersContext.Find(orderToUpdateId); // id of what is looked for
orderToUpdate.DateCreated = DateTime.Now; // any sort of update
那么,在这种情况下,我相信由于例外情况,该对象仍然是附加的