Linq如何只选择大结果集的一小部分?

时间:2012-03-23 19:45:10

标签: .net sql-server linq paging

我有一组庞大的数据,我想使用分页,并从集合中的第o个元素开始只选择k个元素,以支持我的分页。我不喜欢用linq加载整个数据集的想法,然后使用GetRange方法只得到一个子集,因为元素的数量可能非常大。例如,如果我在表中有6 000 000行并想要显示它们,使用10的分页大小并且我们正在查看第5页,我想使用Linq生成SQL Server查询,将只选择我的600万行大表的10个元素,因为这样我的应用程序将更有效。

有人知道在Linq中支持分页吗?

提前谢谢你,

LajosÁrpád。

3 个答案:

答案 0 :(得分:1)

使用SkipTake

collection.Skip(pageIndex * pageSize).Take(pageSize);

答案 1 :(得分:0)

您可以使用SkipTake方法

query = context.Table.Skip(number).Take(number);

答案 2 :(得分:0)

您可以使用Take and Skip。

var page = query.Skip(1000).Take(10);