2016-08-10 16 views
0

是否有这两种LINQ到实体查询之间的任何差别。计数(X => ...)VS其中(x => ...)计数()

context.Table.Count(x => ...) 

context.Table.Where(x => ...).Count() 

在性能和生成SQL方面?

我试图自己查看生成的SQL,但我只知道如何从IQueryable获取SQL,但是Count直接返回该值。

+3

** b **最好的方式知道它是** t **认为它......海事组织,似乎(只)有一点点区别,虽然.. – Ian

+0

是的,但如何?我不知道如何查看生成的SQL。 –

+0

我的意思是,通过查看生成的SQL来计算它...没有必要。给两个困难的情况下(如查询1000000次左右...) – Ian

回答

0

我已成功地看到SQL(感谢@dasblinkenlight),答案是 - 不,这两种LINQ查询产生完全相同的SQL查询,至少没有分组的简单查询:

SELECT 
    [GroupBy1].[A1] AS [C1] 
    FROM (SELECT 
     COUNT(1) AS [A1] 
     FROM [dbo].[Table] AS [Extent1] 
     WHERE <condition> 
    ) AS [GroupBy1] 
+0

可能会有一点区别,因为在第二个解决方案中有第二个函数调用(首先调用where函数,然后调用Count()。我不认为这很容易使用 – Radinator

+0

是的,但是我认为与整体数据库连接和SQL执行时间相比,额外的函数调用时间可以忽略不计。 –

+0

正如我在我的文章中所说:D – Radinator

相关问题