小编Rob*_*ack的帖子

只返回字段时使用AsNoTracking()会有所不同吗?

所以我在EF中执行查询时已经阅读了很多关于使用AsNoTracking()的内容,特别是如果它返回实体,以便在不更新的情况下不保留对事物的引用.

但我也读到AsNoTracking也可以加速查询本身,因为EF不必将查询的每个项目映射到地图中的实体.

问题是,如果我的Linq查询只返回列/行中的值而不是实体类型,那么使用AsNoTracking()是否会加快查询速度?如果不是很明显我不应该使用它,因为它只会使代码混乱?

示例1(我希望使用AsNoTracking():

var result = (from p in context.Pogs
              select p).AsNoTracking();
Run Code Online (Sandbox Code Playgroud)

例2(我的问题......我认为在这里使用没有意义,但我不知道答案):

var result = (from p in context.Pogs
              select p.Name);  // assuming p.Name is a string or something
Run Code Online (Sandbox Code Playgroud)

var result = (from p in context.Pogs.AsNoTracking()
              select p.Name);
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework

9
推荐指数
1
解决办法
1540
查看次数

标签 统计

c# ×1

entity-framework ×1

linq ×1