【问题标题】:Linq how to select only a small subset of a large result set?Linq 如何只选择大结果集的一小部分?
【发布时间】:2012-03-23 19:45:09
【问题描述】:

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

有人知道 Linq 支持分页吗?

提前谢谢你,

拉霍斯阿尔帕德。

【问题讨论】:

  • 你试过 Take() & Skip() 吗?
  • 乔恩,我没有尝试它们,因为我不知道它们存在,而且我的谷歌搜索对这个问题不太成功。

标签: .net sql-server linq paging


【解决方案1】:

使用SkipTake

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

【讨论】:

    【解决方案2】:

    您可以使用SkipTake 方法

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

    【讨论】:

      【解决方案3】:

      您可以使用 Take and Skip。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-03
        • 2010-10-22
        • 1970-01-01
        • 2012-11-26
        • 2021-12-03
        • 2012-02-15
        • 1970-01-01
        相关资源
        最近更新 更多