0

我有一个 Sharepoint 2010 列表,我正在使用 System.Data.Services.Client.DataServiceQuery 将列表放入 C# 列表中。但是,当我枚举列表时,我被限制为 1000 项。

我做了一些研究,发现 Active Directory 默认将此数字限制为 1000,因此它在 Sharepoint 中也会受到限制是有道理的,但我想增加这个数字。

谁能提供一些步骤来在 Sharepoint 或它所在的任何地方找到 MaxPageSize,以便我可以在我的 C# 程序中取回 1000 多个项目?

4

1 回答 1

0

问题来自分页

现在,根据您的服务配置方式,您可能不会收到所有行。在我们的例子中,我们只有 1000 个。这意味着该服务仅配置为每个查询最多返回 1000 个。要解决此问题,您必须对请求进行分页:

    var projects = from project in dc.ITProjects
                  orderby project.Id
                  select new
                  {
                      Phase = project.Phase.Value,
                      ProjectName = project.Project
                  }
                  ;

    int recordCount = projects.Count();
    int page = 0;
    int pageSize = 100;

    while(page*pageSize < recordCount)
    {
        foreach (var project in projects.Skip(page * pageSize).Take(pageSize))
        {
            Output0Buffer.AddRow();
            Output0Buffer.C1 = project.Phase;
            Output0Buffer.C2 = project.ProjectName;
        }
        page++;
    }
于 2015-05-29T08:45:10.897 回答