を継続トークンによるシナリオのために私は多くの場合、このヘルパークラスを使用します:
付き
:今
public static async Task<PagedResults<T>> ToPagedResults<T>(this IQueryable<T> source)
{
var documentQuery = source.AsDocumentQuery();
var results = new PagedResults<T>();
try
{
var queryResult = await documentQuery.ExecuteNextAsync<T>();
if (!queryResult.Any())
{
return results;
}
results.ContinuationToken = queryResult.ResponseContinuation;
results.Results.AddRange(queryResult);
}
catch
{
//documentQuery.ExecuteNextAsync throws an Exception if there are no results
return results;
}
return results;
}
、あなたは多かれ少なかれ、このようなあなたのコードでそれを使用することができます。
var options = new FeedOptions() { MaxItemCount = 20 };//If 20 is your page size
var continuationToken = string.Empty;
var allResults = new List<User>();
do{
if (!string.IsNullOrEmpty(continuationToken))
{
options.RequestContinuation = continuationToken;
}
var userQuery = _client.CreateDocumentQuery<User>(_uriUsersCollection, queryStr, options).ToPagedResults();
continuationToken = userQuery.ContinuationToken;
allResults.AddRange(userQuery.Results);
}while(!string.IsNullOrEmpty(continuationToken));
のGauravグッドポインタ、これはおそらく、根本的な原因です。 –