代码之家  ›  专栏  ›  技术社区  ›  Kit Menke

用数据表进行LINQ和分页-不能跳过工作?

  •  4
  • Kit Menke  · 技术社区  · 15 年前

    好吧,这可能是一个愚蠢的问题,但我似乎想不出来。我想我可以用一个数据表来测试Linq。我的查询工作正常,现在我正在尝试实现一些简单的分页。

    DataTable dataTable = null;
    
    dataTable = GetAllDataTables();
    
    var query = from r in dataTable.AsEnumerable()
                orderby r.Field<string>(Constants.fileName)
                select r;
    
    query.Skip(WPP_PAGE_SIZE * pageIndex).Take(WPP_PAGE_SIZE);
    

    我的问题是我在query.skip(…)时出错。

    错误1“System.Data.OrderedEnumerableRowCollection” 不包含的定义 “skip”并且没有扩展方法“skip” 接受类型为的第一个参数 'System.Data.OrderedEnumerableRowCollection' 可以找到(您是否缺少 使用指令或程序集 参考文献?)

    我有参考资料:

    • 微软.SharePoint
    • 系统
    • 系统核心
    • 系统数据
    • system.data.datasetensions
    • 网络系统
    • 命名空间

    我错过了什么?

    2 回复  |  直到 15 年前
        1
  •  7
  •   Mark Byers    15 年前

    你需要 using System.Linq; 在文件的顶部。

    第二个问题是,您需要将skip和take的结果分配给某个对象,否则结果将被丢弃:

    var query2 = query.Skip(WPP_PAGE_SIZE * pageIndex).Take(WPP_PAGE_SIZE);
    
        2
  •  2
  •   luke    15 年前
    using System.Linq?