【发布时间】:2015-10-08 15:22:20
【问题描述】:
我正在处理一个大型项目(多年来,有许多不同的厨师在做汤)并且刚刚发现了以下代码。
private IEnumerable<string> SomeSome()
{
using(DataModel context = DataModel())
{
context.SomeEntityName.AsNoTracking();
...
return context.SomeEntityName
.Where(entity => true)
.Select(entity => String.Empty);
}
}
现在,我对 AsNoTracking 方法和 it's clearly said 进行了三次检查,以返回一个与 EF 的跟踪设施无关的可查询对象。可以说是 ORM 的一种“一劳永逸”。
注意:
- 我们不存储价值,也不对返回者的内容做任何事情
- 我们获得了一组新的(显然是可跟踪的)对象来做事
我想删除该行。但是,出于谦虚(即害怕不怕损坏系统),在删除任何内容之前我会很谨慎。在我的上下文中是否有任何隐含的变化可能会影响实体的第二次检索?
我没有找到任何关于它的信息 - 既不支持也不反对该理论。此外,我还没有找到 EF 5.0 以外的任何其他版本的文档(如上面的链接所示),但我们使用的是 EF 6.1.3,而且我知道所讨论的方法也存在于 EF 4 中。
【问题讨论】:
标签: c# entity-framework