0
documentDB Microsoft.Azure.Documents.Client
バージョン1.11.0.0で作業しています。 私は質問のページングをしようとするたびに、次の20のベスト結果を取る。 しかし、もし私がdbの要素を25個だけ持っていれば、最初の呼び出しでは、次の呼び出しで最初の呼び出しを受け取りましたが、私はcontinueトークンを呼び出して5回の結果ではなく20回の結果を再度受け取りました。 私のコードは次のとおりです。DocumentDBのページングは、正常に機能していません。
public static async Task<Tuple<List<Student>, string, int>> StudentSearch(string text, string continuationToken)
{
List<Student> results = new List<Student>();
try
{
if (string.IsNullOrEmpty(continuationToken))
{
FeedOptions options = new FeedOptions { MaxItemCount = 20 };
var userQuery = _client.CreateDocumentQuery<Student>(
_uriStudentCollection, options).Where(x => x.StudentName.ToLower().Contains(text) || x.Description.ToLower().Contains(text)).OrderBy(x => x.Rank.TotalScore).AsDocumentQuery();
var feedResponse = await userQuery.ExecuteNextAsync<Student>();
foreach (var ad in feedResponse.AsEnumerable())
{
results.Add(ad);
}
string continuation = feedResponse.ResponseContinuation;
return new Tuple<Student>, string, int>(results, continuation, results.Count);
}
else
{
FeedOptions feedOptions = new FeedOptions { MaxItemCount = 20, RequestContinuation = continuationToken };
var userQuery = _client.CreateDocumentQuery<Student>(
_uriStudentCollection, feedOptions).Where(x => x.StudentName.ToLower().Contains(text) || x.Description.ToLower().Contains(text)).OrderBy(x => x.Rank.TotalScore).AsDocumentQuery();
var feedResponse = await userQuery.ExecuteNextAsync<Student>();
foreach (var ad in feedResponse.AsEnumerable())
{
results.Add(ad);
}
string continuation = feedResponse.ResponseContinuation;
return new Tuple<List<Student>, string, int>(results, continuation, results.Count);
}
}
catch (Exception ex)
{
return null;
}
}
最初から同じ20か最後の5プラス15ですか? – Matt