EF 4 Count () параметры производительности - PullRequest
0 голосов
/ 05 января 2012

Какой самый эффективный способ подсчета элементов в таблице с использованием EF 4.1?

this.context.MyTable.Count(x.idTenant == 5);

или

 this.context.MyTable.Where(x.idTenant == 5).Count();

Любой другой способ подсчета объектов в таблице, если онболее производительный?

Ответы [ 2 ]

1 голос
/ 05 января 2012

Согласно выводу Linq, выражения в генерируемом SQL-запросе равны:

SELECT COUNT(*) AS [value]
FROM [MyTable] AS [t0]
WHERE [t0].[idTenant] = @p0
1 голос
/ 05 января 2012

Попытка этого в LINQPad показывает, что сгенерированный sql будет таким же:

var r1 = Users.Count(u => u.JurisdictionId == 5).Dump();    
var r2 = Users.Where(u => u.JurisdictionId == 5).Count().Dump(); 

и сгенерированный sql:

SELECT 
[GroupBy1].[A1] AS [C1]
FROM ( SELECT 
    COUNT(1) AS [A1]
    FROM [System].[Users] AS [Extent1]
    WHERE 5 = [Extent1].[JurisdictionId]
)  AS [GroupBy1]
GO

SELECT 
[GroupBy1].[A1] AS [C1]
FROM ( SELECT 
    COUNT(1) AS [A1]
    FROM [System].[Users] AS [Extent1]
    WHERE 5 = [Extent1].[JurisdictionId]
)  AS [GroupBy1]

Это с использованием EF 4.2, но это должно быть то же самое в 4.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...