2009-07-08 4 views
0

Je suis sûr que c'est une question stupide, mais comment puis-je obtenir une liste paged des éléments filtrés?Subsonic 3 filtre getpaged question

Voici comment je fini par le faire:

PagedList<Company> company = Company.GetPaged(1, 10); 

var list = Company.Find(x => x.CompanyName.ToLower().Contains(query.ToLower())); 
company .Clear(); 

foreach (var x in list) 
    company .Add(x); 

return View(company); 

En d'autres termes, je veux faire une découverte sur la table, et retourner une liste paginée des résultats.

Merci!

+0

Que diriez-vous de poster votre propre réponse? – Ted

Répondre

0

Il y a un exemple fantastique dans NerdDinner.

Si vous avez du mal à le trouver, faites le moi savoir et je posterai le code pour vous.

+0

Merci, j'ai regardé NerdDinner et trouvé ce dont vous parlez. J'ai eu des problèmes avec l'erreur en disant qu'il n'y avait pas d'agrégat ou de groupe par. J'ai fini par le résoudre un peu différemment. – chad

0

En fait, il est assez facile d'obtenir la liste paginée et vous avez dit la réponse à votre question

En d'autres termes, je veux faire une trouvaille sur la table, et retourner une liste paginée de les résultats .

  • Créez votre requête LINQ (faire une découverte sur la table)
  • un nouveau SubSonic.Schema.PagedList (T) (retourner une liste paginée)

Par exemple:

var list = Company.Find(x => x.CompanyName.ToLower().Contains(query.ToLower())); 
var paged = new SubSonic.Schema.PagedList<Company>(list,1,10)