C# 使用GraphDiff更新两个相关表中的数据
我有两张表,Order和OrderItems Order表有一个OrderId列,它是主键 OrderItems也将此列作为外键 对于给定的订单,如果OrderId为1且有两项,则OrderItems表 将有两行,每行的OrderID为1 我使用EF创建了一个包含两个表的上下文 现在,Order表和OrderItems表都有一个Status列 我想使用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()) {
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
那么,在这种情况下,我相信由于例外情况,该对象仍然是附加的