Subsonic 3 - Репозиторий GetPagedList, где предложение Cast проблема

В Репозитории есть метод GetPagedList.

У меня есть метод, который ожидает возврата PagedList

У меня в настоящее время есть

return _repository.GetPaged(sortBy, pageNumber, 20);

Однако теперь мне нужно выполнить некоторую проверку, например

_repository.GetPaged(sortBy, pageNumber, 20).Where(x => x.IsAdmin == false)

Теперь это меняет тип на IEnumerable. Я пробовал использовать Cast> (), но это тоже не сработало.

Любая помощь приветствуется!


person Jon    schedule 30.07.2009    source источник


Ответы (1)


Только что столкнулся с той же проблемой и обнаружил, что вы можете создать свой собственный PagedList ‹>, передав настраиваемый объект IQueryable. Как видно ниже, вы добавляете свои собственные предложения where перед разбивкой на страницы.

IQueryable<YourObject> yourQuery = _repository.All().Where(x => x.IsAdmin == false);

return new PagedList<YourObject>(yourQuery, pageNo, pageSize);

Возможно, вам потребуется добавить предложение OrderBy, поскольку я думаю, что это либо ошибка, либо ограничение дизайна (V3.03), не использующий первичный ключ в качестве столбца порядка по умолчанию.

Я уверен, что в более поздних версиях это будет рассматриваться, так как довольно редко разбивать на страницы без предложения where, и не составит большого труда обновить шаблоны tt.

person timpeck    schedule 17.08.2009