首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GraphDiff更新两个相关表中的数据

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

Stack Overflow用户
提问于 2014-11-05 14:34:24
回答 1查看 991关注 0票数 3

我有两个表,Order和OrderItems

Order表有一个OrderId列,它是主键,OrderItems也有这个列作为foriegn键。

对于给定的订单,如果OrderId是1,并且它有两个项目,那么OrderItems表将有两个行,每个行的OrderID都是1。

使用EF,我使用这两个表创建了一个上下文。

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

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

代码语言:javascript
复制
using (var ordersContext = new OrdersContext())
{
    ordersContext.UpdateGraph(orderToUpdate, map => map.OwnedCollection(p => p.OrderItems));
    ordersContext.SaveChanges();
}

这会产生以下异常:

代码语言:javascript
复制
GraphDiff supports detached entities only at this time. Please try AsNoTracking() or detach your entites before calling the UpdateGraph method

有什么线索吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-03-04 23:37:40

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

例如,如果您这样做

代码语言:javascript
复制
var ordersContext = new OrdersContext();
var orderToUpdate = ordersContext.Find(orderToUpdateId); // id of what is looked for
orderToUpdate.DateCreated = DateTime.Now; // any sort of update

那么,在这种情况下,我认为由于异常,对象仍然被附加;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26751058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档