我有两个表,Order和OrderItems
Order表有一个OrderId列,它是主键,OrderItems也有这个列作为foriegn键。
对于给定的订单,如果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有什么线索吗?
提前谢谢。
发布于 2015-03-04 23:37:40
异常意味着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那么,在这种情况下,我认为由于异常,对象仍然被附加;
https://stackoverflow.com/questions/26751058
复制相似问题