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