Дозвуковой 3 - Репозиторий GetPagedList Где предложение Приведение проблемы - PullRequest
0 голосов
/ 30 июля 2009

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

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

У меня сейчас есть

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

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

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

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

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

1 Ответ

2 голосов
/ 17 августа 2009

Просто столкнулся с той же проблемой и обнаружил, что вы можете создать свой собственный 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.

...