Преобразуйте LINQ IQueryable в разбитый на страницы IQueryable, использующий LINQ для NHibernate

Я хочу сделать что-то как этот

    public IQueryable GetPaged<TSource>(IQueryable<TSource> query, int startIndex, int pageSize)
    {
        return GetSession()
          .Linq<TSource>()
          .UseQuery(query)
          .Take(pageSize)
          .Skip(startIndex);
    }

Таким образом, можно поместить любой оператор IQuerable и "это становится разбитым на страницы", или это будет разбито на страницы.

Я использую LINQ для NHibernate. Я надеюсь, что Вы получаете его, sry для этого плохого английского языка: o

править: Возможно, мой подход является неправильным, не так ли?

5
задан Rookian 10 January 2010 в 12:48
поделиться

2 ответа

Это копируется из рабочего кода:

public static class QueryableExtensions
{   
    public static IQueryable<T> Paged<T>(this IQueryable<T> source, int page,
                                                                    int pageSize)
    {
        return source
          .Skip((page - 1) * pageSize)
          .Take(pageSize);
    }
}
14
ответ дан 18 December 2019 в 13:14
поделиться
return query.skip(startIndex).take(pageSize);
0
ответ дан 18 December 2019 в 13:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: