您将如何在LINQ查询中实现分页?实际上暂时来说,如果可以模仿sql TOP函数,我会感到满意。但是,我可以肯定的是,无论如何稍后都需要全面的页面支持。
var queryResult = from o in objects where ... select new { A = o.a, B = o.b } ????????? TOP 10????????
您正在寻找Skip和Take扩展方法。Skip移过结果中的前N个元素,返回其余的元素;Take返回结果中的前N个元素,并删除所有剩余元素。
Skip
Take
有关如何使用这些方法的更多信息,请参见MSDN:http : //msdn.microsoft.com/zh- cn/library/bb386988.aspx
假设您已经考虑到pageNumber应该从0开始(按注释中的建议每1减少),您可以这样做:
int numberOfObjectsPerPage = 10; var queryResultPage = queryResult .Skip(numberOfObjectsPerPage * pageNumber) .Take(numberOfObjectsPerPage);
否则@Alvin建议
int numberOfObjectsPerPage = 10; var queryResultPage = queryResult .Skip(numberOfObjectsPerPage * (pageNumber - 1)) .Take(numberOfObjectsPerPage);