retrieve more than 5 K record
public static EntityCollection paginationQuery (OrganizationServiceProxy _service, QueryExpression query)
{
int queryCount = 2500;
int pageNumber = 1;
int recordCount = 0;
query.PageInfo = new PagingInfo();
query.PageInfo.Count = queryCount;
query.PageInfo.PageNumber = pageNumber;
query.PageInfo.PagingCookie = null;
EntityCollection fullResult = new EntityCollection();
while (true)
{
// Retrieve the page.
EntityCollection results = _service.RetrieveMultiple(query);
if (results.Entities != null)
{
// Retrieve all records from the result set.
foreach (var rec in results.Entities)
{
fullResult.Entities.Add(rec);
}
}
// Check for more records, if it returns true.
if (results.MoreRecords)
{
// Increment the page number to retrieve the next page.
query.PageInfo.PageNumber++;
// Set the paging cookie to the paging cookie returned from current results.
query.PageInfo.PagingCookie = results.PagingCookie;
}
else
{
return fullResult;
// If no more records are in the result nodes, exit the loop.
break;
}
}
return fullResult;
}
Commentaires
Enregistrer un commentaire