2009-07-30 7 views
0

Im Repository gibt es eine GetPagedList-Methode.Subsonic 3 - Repository GetPagedList Where-Klausel Cast-Problem

Ich habe eine Methode, die eine Rückkehr von PagedList erwartet

Ich habe derzeit

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

Jedoch habe ich jetzt einige Kontrollen wie

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

ändert sich dies nun tun müssen, Typ IEnumerierbar. Ich habe versucht, einen Cast>() zu machen, aber das funktioniert auch nicht.

Jede Hilfe wird geschätzt!

Antwort

2

Gerade vor dem gleichen Problem, und festgestellt, dass Sie Ihre eigene PagedList <> in einem anpassbaren IQueryable-Objekt übergeben können. Unten sehen Sie Ihre eigenen where-Klauseln, bevor Sie paginieren.

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

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

Möglicherweise müssen Sie eine OrderBy-Klausel hinzufügen, wie ich denke, es ist entweder ein Fehler oder Design-Einschränkung (V3.03) nicht Primärschlüssel als Spaltenstandard Reihenfolge.

Ich bin sicher, dass dies in späteren Versionen als sehr selten zu paginieren ohne where-Klausel berücksichtigt würde, und würde nicht viel Arbeit sein, um die tt-Vorlagen aktualisiert.

+0

ausgezeichnet, ich benutze diese Methode jetzt und funktioniert super – davethecoder