2 votes

Pagination avec LINQ to SQL

Nous avons une clause orderby dans LINQ to SQL comme ci-dessous mais avons-nous quelque chose pour la pagination ?

from trans in DB.transactions 
orderby trans.column descending 
select trans;

Ou devons-nous le faire manuellement (en quelque sorte) comme la requête suivante ?

(from trans in DB.transactions 
orderby trans.column descending 
select trans).Skip(noOfRecords).Take(pageSize);

0voto

Feriloo Points 163

Comme je le sais, vous devez utiliser .Skip y .Take mais vous pouvez écrire une extension pour IQueryable pour faciliter votre travail :

public static class Extensions
{
    public static IQueryable<T> Paging<T>(this IQueryable<T> source, int pageNumber, int pageLength)
    {
        return source.Skip(pageNumber * pageLength).Take(pageLength);
    }
}

var source = (from trans in DB.transactions 
orderby "cancellation_reason_id" descending 
select trans);

source = source.Paging(0, 10); // Get first page with 10 item

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X