关于EntityFramework AsNoTracking

时间:2016-12-24 00:52:32

标签: c# entity-framework

我正在使用EntityFramework v6.1.2。

我阅读了一些文章并了解AsNoTracking扩展名。

当调用AsNoTracking时,意味着如果未附加实体,则上下文和实体更新“应该失败”。

但我已经成功尝试并更新了,我的代码如下:

private readonly DemoObjectContext _objectContext = new DemoObjectContext();
var order = _objectContext.Orders.AsNoTracking().FirstOrDefault(x => x.Id == 1);(1 is the primary key)

order.OrderStatus = OrderStatus.Processing; // change the orderstatus
                //_objectContext.Set<Order>().Attach(order);
                _objectContext.Entry(order).State = EntityState.Modified;
                _objectContext.SaveChanges();

有什么不对或 EntityFramework(6.1.2)改变了什么?

请帮帮我

1 个答案:

答案 0 :(得分:1)

EF没有问题。它起作用是因为Entry将实体附加到上下文中。

See here for more details.

And on this SO specifically about Entry