C# LINQ和分页
我们需要使用LINQ从数据库中获取数据。我们现在需要实现分页 我想我们需要一次获取C# LINQ和分页,c#,linq-to-sql,C#,Linq To Sql,我们需要使用LINQ从数据库中获取数据。我们现在需要实现分页 我想我们需要一次获取10记录,当我们单击Next按钮时,它将从db获取下一个10记录 请用密码引导我。谢谢。跳过和。采取扩展方法可以使用: var result = (from c in Customers select new { c.City, c.ContactName }
10
记录,当我们单击Next按钮时,它将从db获取下一个10
记录
请用密码引导我。谢谢
。跳过
和。采取
扩展方法可以使用:
var result = (from c in Customers
select new
{
c.City,
c.ContactName
}
).Skip(5).Take(5);
LINQ函数将限制获取的项目数量。该函数将忽略前n项。类似的方法可能会奏效:
myDataSource.Skip(pageSize * curPage).Take(pageSize)
我始终使用以下代码:
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);
}
}
很简单!谢谢你提供的信息!:)哇,太好了,谢谢:请注意,在LINQtoSQL中,您必须首先对输入进行排序。作为通用扩展方法很有用。这仅在第1页是您的起始页时才有效。如果要在第一页以页码0开头,请从该页中删除-1。只需返回source.Skip(page*pageSize)、Take(pageSize);
MyQuery.Page(pageNumber, pageSize)