LINQ和分页

我们需要使用LINQ从数据库中获取数据。 我们现在需要实施分页。

我想我们一次需要获取10条记录,当我们点击Next按钮时,它将从db获取接下来的10条记录。

请指导我代码。 谢谢

我总是使用以下代码:

 public static class PagingExtensions { //used by LINQ to SQL public static IQueryable Page(this IQueryable source, int page, int pageSize) { return source.Skip((page - 1) * pageSize).Take(pageSize); } //used by LINQ public static IEnumerable Page(this IEnumerable source, int page, int pageSize) { return source.Skip((page - 1) * pageSize).Take(pageSize); } } 

这是一个静态类,您可以在源代码中包含它。 添加此类后,您可以执行以下操作:

 MyQuery.Page(pageNumber, pageSize) 

LINQ Take()函数将限制拍摄的项目数。 Skip()函数将忽略前n个项目。 这样的事情可能有用:

 myDataSource.Skip(pageSize * curPage).Take(pageSize) 

.Skip和。可以使用.Skip扩展方法:

 var result = (from c in Customers select new { c.City, c.ContactName } ).Skip(5).Take(5);