Извлекает ли Linq сначала все записи, если я сделать подсчет?

Предположим, у меня есть таблица Population, в которой хранятся некоторые демографические данные. В T-SQL, чтобы подсчитать людей старше 50, я мог бы сделать что-то вроде этого:

SELECT COUNT(*) FROM POPULATION
WHERE AGE > 50

Я думал, что следующий оператор linq будет работать, но он просто возвращает ноль, и я не понимаю почему.

var count = _context.Population.Count(x => x.Age > 50);

В Чтобы получить счетчик, я должен выполнить одно из следующих действий:

var count = _context.Populaton.Where(x => x.Age > 50).Count();

var count = _context.Population.Select(x => x.Age > 50).Count();

Почему описанные выше сценарии имеют место?

7
задан Xaisoft 18 January 2011 в 02:53
поделиться