Пейджинг с Find с использованием Active Record

Я не могу найти ответ на этот вопрос или хороший пример того, как выполнить то, что я пытаюсь сделать. Я уверен, что это было опубликовано или объяснено где-то, но у меня проблемы с поиском точного решения, которое мне нужно.

Я использую ActiveRecord в Subsonic 3.0.0.4. Когда я делаю что-то вроде

recordset = VehicleModel.Find(x => x.Model.StartsWith(SearchText));

Я возвращаю список объектов VehicleModel (или, проще говоря, набор записей), это нормально, пока я не верну слишком много записей. Я также не могу заказать возвращенный набор записей (моя сетка будет делать это хорошо, но я уверен, что это будет слишком медленно, если у меня будет слишком много записей). То, что Find возвращает IList, не так много, что я могу с этим напрямую столкнуться (опять же, я могу упустить что-то простое, поэтому, пожалуйста, не убивайте меня).

Мой вопрос: может кто-нибудь объяснить, как найти данные, как я выше, отсортировать их и получить страницу данных, где страница имеет размер n?

Я иду по этому поводу неправильно? Я даже близко, чтобы быть на правильном пути?

1 ответ

Решение
int currentPage = x
int pageSize = n
recordset = VehicleModel.Find(x => x.Model.StartsWith(SearchText)).Skip(currentPage x PageSize).Take(PageSize);

это предполагает, что currentPage начинается с 0.
если ваш currentPage начинается с 1, то его Skip((currentPage - 1) x PageSize)

Другие вопросы по тегам