如果返回的记录数低于 5000,这会失败吗?
Will this fail if the returned number of records is below 5000?
我有一个针对我编写的 QueryExpression 的多请求。在某些情况下,会返回超过 5000 条记录,而在其他情况下,会返回不到 5000 条记录。我担心如果计数小于 5000,这会失败。这是真的吗?!
QueryExpression queryService = conversionResponse.Query;
int pageNumber = 1;
RetrieveMultipleRequest multiRequest;
RetrieveMultipleResponse multiResponse = new RetrieveMultipleResponse();
do
{
queryService.PageInfo.Count = 5000;
queryService.PageInfo.PagingCookie = (pageNumber == 1) ? null : multiResponse.EntityCollection.PagingCookie;
queryService.PageInfo.PageNumber = pageNumber++;
multiRequest = new RetrieveMultipleRequest
{
Query = queryService
};
multiResponse = (RetrieveMultipleResponse)service.Execute(multiRequest);
Allergies.Entities.AddRange(multiResponse.EntityCollection.Entities);
} while (multiResponse.EntityCollection.MoreRecords);
两种情况都应该没问题。
这里有一个类似的 MSDN 示例; Sample: Use QueryExpression with a paging cookie.
我有一个针对我编写的 QueryExpression 的多请求。在某些情况下,会返回超过 5000 条记录,而在其他情况下,会返回不到 5000 条记录。我担心如果计数小于 5000,这会失败。这是真的吗?!
QueryExpression queryService = conversionResponse.Query;
int pageNumber = 1;
RetrieveMultipleRequest multiRequest;
RetrieveMultipleResponse multiResponse = new RetrieveMultipleResponse();
do
{
queryService.PageInfo.Count = 5000;
queryService.PageInfo.PagingCookie = (pageNumber == 1) ? null : multiResponse.EntityCollection.PagingCookie;
queryService.PageInfo.PageNumber = pageNumber++;
multiRequest = new RetrieveMultipleRequest
{
Query = queryService
};
multiResponse = (RetrieveMultipleResponse)service.Execute(multiRequest);
Allergies.Entities.AddRange(multiResponse.EntityCollection.Entities);
} while (multiResponse.EntityCollection.MoreRecords);
两种情况都应该没问题。
这里有一个类似的 MSDN 示例; Sample: Use QueryExpression with a paging cookie.