C# 来自Sharepoint的DataServiceQuery IEnumerator仅返回1000项

C# 来自Sharepoint的DataServiceQuery IEnumerator仅返回1000项,c#,sharepoint-2010,dataservice,C#,Sharepoint 2010,Dataservice,我有一个Sharepoint 2010列表,我正在使用System.Data.Services.Client.DataServiceQuery将该列表转换为C#列表。然而,当我列举清单时,我被限制在1000项之内 我做了一些研究,发现Active Directory默认值将这个数字限制为1000,因此在Sharepoint中也限制这个数字是有意义的,但我想增加这个数字 是否有人可以提供一些步骤来查找Sharepoint中的MaxPageSize,或者它位于何处,以便我可以在我的C#程序中取回10

我有一个Sharepoint 2010列表,我正在使用System.Data.Services.Client.DataServiceQuery将该列表转换为C#列表。然而,当我列举清单时,我被限制在1000项之内

我做了一些研究,发现Active Directory默认值将这个数字限制为1000,因此在Sharepoint中也限制这个数字是有意义的,但我想增加这个数字


是否有人可以提供一些步骤来查找Sharepoint中的MaxPageSize,或者它位于何处,以便我可以在我的C#程序中取回1000多个项目?

问题来自分页

现在,根据服务的配置方式,您可能不会收到所有行。在我们的情况下,我们只得到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++;
    }
var projects=来自dc.ITProjects中的项目
orderbyproject.Id
选择新的
{
阶段=project.Phase.Value,
ProjectName=project.project
}
;
int recordCount=projects.Count();
int page=0;
int pageSize=100;
while(页面*页面大小<记录计数)
{
foreach(项目中的var项目。跳过(页面*页面大小)。获取(页面大小))
{
Output0Buffer.AddRow();
Output0Buffer.C1=项目阶段;
Output0Buffer.C2=project.ProjectName;
}
page++;
}

考虑使用搜索-查找描述限制的文章、调整限制的方法以及处理列表的正确方法。感谢您的建议,但这些都涉及Sharepoint列表中的限制。我在sharepointlist中已经有1000多个项目。我正在寻找一种方法,使用C#中的DataServiceQuery从sharepoint列表中获取1000多个限制。尝试调整每个限制,看看您的
DataServiceQuery
是否遵守限制(我不确定它是否使用了任何限制或只是硬编码为1000)。限制会影响SP在单个查询中向任何API返回多少项,在此之后,您将需要使用分页(即,某些API返回您需要传递给下一个调用的令牌,以便它返回下一批…)