我的数据库包含来自租户ID标识的多个数据源的数据。虽然One Tenant拥有数百万条记录,但另一条记录只有75条记录,如下面的屏幕截图
当我使用以下代码查询数据时
var count = continuationToken?.Count ?? ContinuationToken.DefaultPageCount;
var feedOptions = new FeedOptions
{
EnableCrossPartitionQuery = true,
MaxItemCount = count,
RequestContinuation = continuationToken?.NextRowKey
};
var query = sortByAscending
? _client.CreateDocumentQuery<T>(_collection.DocumentsLink, feedOptions).Where(filter).OrderBy(order).AsDocumentQuery()
: _client.CreateDocumentQuery<T>(_collection.DocumentsLink, feedOptions).Where(filter).OrderByDescending(order).AsDocumentQuery();
var feedResponse = await query.ExecuteNextAsync<T>();
var items = feedResponse.AsEnumerable().ToList();
var nextPageToken = feedResponse.ResponseContinuation;
return new ContinuationTokenData<T>(items, items.Count, nextPageToken, count);
过滤器位于租户ID上。前2页(每页25条记录)的租户数据很好地回来了。但是,当它到达最后25条记录时,延续令牌会不断重复旧值,如下所示
你知道如何修复这个或者这是一个CosmoDb错误吗?感谢
答案 0 :(得分:2)
当token为null时,实际上意味着没有延续(如请求2和4中)。
如果您发送FeedOptions RequestContinuation = null,它将始终返回第一页。