【发布时间】:2011-09-05 07:45:19
【问题描述】:
我们需要使用 LINQ 从数据库中获取数据。我们现在需要实现分页。
我想我们需要一次获取10 记录,当我们单击“下一步”按钮时,它将从数据库中获取下一个10 记录。
请用代码指导我。谢谢
【问题讨论】:
标签: c# linq-to-sql
我们需要使用 LINQ 从数据库中获取数据。我们现在需要实现分页。
我想我们需要一次获取10 记录,当我们单击“下一步”按钮时,它将从数据库中获取下一个10 记录。
请用代码指导我。谢谢
【问题讨论】:
标签: c# linq-to-sql
我总是使用以下代码:
public static class PagingExtensions
{
//used by LINQ to SQL
public static IQueryable<TSource> Page<TSource>(this IQueryable<TSource> source, int page, int pageSize)
{
return source.Skip((page - 1) * pageSize).Take(pageSize);
}
//used by LINQ
public static IEnumerable<TSource> Page<TSource>(this IEnumerable<TSource> source, int page, int pageSize)
{
return source.Skip((page - 1) * pageSize).Take(pageSize);
}
}
这是一个静态类,您可以将其包含在源代码中。 添加此类后,您可以执行以下操作:
MyQuery.Page(pageNumber, pageSize)
【讨论】:
可以使用.Skip和.Take扩展方法:
var result = (from c in Customers
select new
{
c.City,
c.ContactName
}
).Skip(5).Take(5);
【讨论】: