Я возвращаюсь на страничку, отфильтровывал результаты некоторых моих маршрутов REST. Если я упростить мой код, он идет что-то вроде этого:Выберите и подсчитайте в одном запросе с помощью Entity Framework?
var query = db.SomeTable.Where(row => row.SomeProperty > 42);
return new Result {
data = query.Skip(skip ?? 0).Take(take ?? 25).ToList(),
count = query.Count() };
Это работает, но он производит два запроса к базе данных SQL Server: один, который извлекает данные, второй, который считает их. Как сделать это в одном запросе, не прибегая к письменному запросу T-SQL?
Что бы выглядел ручной запрос, как выбор данных (без разбивки), так и подсчитывает количество записей (агрегированных)? – Jamiec
Вы можете запустить «ToList()» в конце первой строки, но затем сначала вы получите все строки с SomeProperty> 42 из базы данных. – Sasse
Мне просто пришло в голову, что нет возможности создать два SQL-запроса для этого. Это приведет к возврату счета для каждой записи. – reckface