Logo UGIdotNET

Implementare la paginazione con LINQ

LINQ permette di implementare facilmente funzionalità di paginazione dei dati mediante i metodi Take e Skip:

DataContext context = new DataContext("...stringa di connessione a db SQL Server...");
int pageSize = 20,
     pageCount = (from c in context.GetTable<Customer>() select c).Count() / pageSize;

for (int pageIndex = 0; pageIndex < pageCount; pageIndex++)
{
    var customers = (from c in context.GetTable<Customer>() orderby c.CompanyName ascending select c).Skip(pageIndex * pageSize).Take(pageSize);
    foreach (Customer c in customers)
    {
        Console.WriteLine(string.Format("{0}", c.CompanyName));
    }
    Console.WriteLine("Press to view page #{0}", pageIndex + 2);
    Console.ReadLine();
}

Autore: Andrea Saltarello
Data: 20 novembre 2007
Ultimo aggiornamento: 20 novembre 2007
Categorie:  Data Access

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185