【发布时间】:2014-02-13 13:15:44
【问题描述】:
所以我已经阅读了很多关于在 EF 中执行查询时使用 AsNoTracking() 的内容,特别是如果它返回实体,如果您不更新,就不要保留对事物的引用。
但我也读到 AsNoTracking 也可以加速查询本身,因为 EF 不必将查询的每个项目映射到地图中的实体。
问题是,如果我的 Linq 查询只是从列/行返回值而不是实体类型,那么使用 AsNoTracking() 是否会加快查询速度?如果不是很明显我不应该使用它,因为它只会使代码混乱?
示例 1(我希望使用 AsNoTracking():
var result = (from p in context.Pogs
select p).AsNoTracking();
示例2(我的问题...我认为在这里使用没有意义,但我不知道答案):
var result = (from p in context.Pogs
select p.Name); // assuming p.Name is a string or something
对
var result = (from p in context.Pogs.AsNoTracking()
select p.Name);
【问题讨论】:
标签: c# linq entity-framework