2016-08-10 46 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

相關問題