Я перехожу с Microsoft.Azure.Documents SDK на новый Microsoft.Azure.Cosmos (v3.2.0) и у меня возникла проблема с получением маркера продолжения для разбитых на страницы запросов.В предыдущем SDK, когда у вас был объект FeedResponse, он возвращал bool для HasMoreResults, а также ContinuationToken, который я передаю своим пользователям, если они захотят сделать вызов для следующей страницы (через конечную точку API).В новом SDK я пытаюсь использовать метод GetItemQueryIterator в своем контейнере, и единственные примеры, которые я вижу, - это использование цикла while для получения всех страниц с использованием значения HasMoreResults без возможности извлечения ContinuationToken и просто возврата первогонабор результатов.
Вот как выглядит мой код:
var feedIterator = _documentContext.Container.GetItemQueryIterator<MyDocumentModel>(query, request.ContinuationToken, options);
if (feedIterator.HasMoreResults)
{
listViewModel.HasMoreResults = true;
//listViewModel.ContinuationToken = feedIterator.ContinuationToken; (DOES NOT EXIST!)
}
Закомментированная строка - это то место, откуда я обычно ожидаю извлечь ContinuationToken, но он не существует.
Большинство примеров показывают использование итератора следующим образом:
while (feedIterator.HasMoreResults)
{
listViewModel.MyModels.AddRange(_mapper.Map<List<MyModelListViewItem>>(await results.ReadNextAsync()));
}
Но я хочу вернуть только одну страницу результатов и передать маркер продолжения, если я хочу получить следующую страницу.