EF core2.1 Count / Distinct - PullRequest
       21

EF core2.1 Count / Distinct

0 голосов
/ 25 января 2019

запрос - это IQueryable , который содержит много объединений и условий.

var total = await query.Select(p=>p.Id).Distinct().CountAsync();

sql, сгенерированный EF Core 2.1:

SELECT COUNT(*)
FROM ( SELECT DISTINCT [Id]
       FROM (many join and condition)
     ) as [t]

запрос занимает около 8 секунд для возврата суммы.

Я изменяю свой sql-запрос вручную:

 SELECT COUNT(distinct Id)
 From (many join and condition)

и запрос занимает 3 секунды

Как переписать мой запрос linq для генерации count (отличный идентификатор) вместо select count () из (...) *

...