在实体框架中添加 AsNoTracking 会影响计数吗?

Val*_*ann 9 c# entity-framework-6

将 AsNotracking 函数添加到实体框架 6 中的计数是否对计数有影响?更具体地说,它是提高还是降低性能,还是会缓存计数结果?

使用 AsNoTracking

myContext.Products.AsNoTracking().Count();
Run Code Online (Sandbox Code Playgroud)

没有 AsNoTracking

myContext.Products.Count();
Run Code Online (Sandbox Code Playgroud)

Dav*_*idG 10

由于此查询未生成任何实体,因此无需跟踪任何内容,因此性能没有差异。由此生成的 SQL 看起来像这样:

SELECT COUNT(1)
FROM [dbo].[Products]
Run Code Online (Sandbox Code Playgroud)

这显然返回了一行。如果它正在创建要跟踪的实体,则必须返回该表中的每个实体。