使用LINQ to NHibernate将LINQ IQueryable转换为分页IQueryable

时间:2010-01-09 21:27:19

标签: linq nhibernate paging expression

我想做那样的事情

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

所以你可以把任何 IQuerable语句和“它变为分页”或者它将被分页。

我正在使用LINQ to NHibernate。 我希望你能得到它,为这个糟糕的英语而烦恼:o

编辑:也许我的方法是错误的,是吗?

2 个答案:

答案 0 :(得分:14)

这是从工作代码中复制的:

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);
    }
}

答案 1 :(得分:0)

return query.skip(startIndex).take(pageSize);