Додд, хотя я согласен с @Daniel, что не рекомендуется выбирать все , у вас все еще может быть хороший вариант использования.
EDIT:
Этот метод не будет работать, поскольку MaxPageSize
все еще будет верхней границей (как отмечено @Ayende в комментариях ниже.
Вместо установки MaxPageSize
или вызова Take()
в итерации цикла вы можете выполнить два простых запроса для получения данных.
Первый запрос будет использоваться для определения СКОЛЬКО записей существует. Обратите внимание на Take(0)
, который не возвращает никаких результатов, но он заполнит статистику .
RavenQueryStatistics stats = null;
var tempPagingQuery = (from p in session.Query<Page>
.Statistics(out stats)
select p).Take(0).FirstOrDefault();
Второй запрос будет извлекать все записи. Здесь мы используем TotalResults
из статистики , которая была собрана выше.
pages = (from p in session.Query<Page>
select p).Take(stats.TotalResults).ToList();