Я использую интерфейсы IQueryable<T>
во всем моем приложении и откладываю выполнение SQL в базе данных до тех пор, пока такие методы, как .ToList()
Мне нужно будет иногда находить количество определенных списков - без необходимости использовать данные в подсчете списка. Я знаю из своего опыта SQL, что SQL COUNT() гораздо меньше работает для БД, чем эквивалентный оператор SELECT, который возвращает все строки.
Итак, мой вопрос: будет ли меньше работать с БД, чтобы вернуть счетчик из метода IQueryable<T>
Count()
, чем преобразовать IQueryable<T>
в список и вызвать метод списка Count()
?
Я подозреваю, что он даст, что ToList()
запустит SELECT sql, а затем в отдельном запросе подсчет строк. Я надеюсь, что Count()
на IQueryable<T>
просто отображает sql для SQL-запроса sql(). Но я не уверен. Знаете ли вы?