Cosmos Db 不返回所有记录,即使 maxItemCount 设置为 -1

Cosmos Db not returning all records even though maxItemCount set to -1

我有一个包含 50 000 条记录的 cosmos 数据库,但下面的代码只有 returns 8356。我认为将 MaxItemCount 设置为 -1 会 return 所有这些。我怎样才能做到这一点?

public async Task<IEnumerable<T>> ReadAsync(Expression<Func<T, bool>> predicate)
        {
            var entityList = new List<T>();

            var query = _container.GetItemLinqQueryable<T>(requestOptions: new QueryRequestOptions { MaxItemCount = -1 })
               .Where(predicate).OrderByDescending(x => x.TimeStamp).AsQueryable();

            using (var iterator = query.ToFeedIterator())
            {
                entityList.AddRange(
                    await iterator.ReadNextAsync());
            }

            return entityList;
        }

您没有耗尽所有查询结果(缺少对 HasMoreResults 的检查):

public async Task<IEnumerable<T>> ReadAsync(Expression<Func<T, bool>> predicate)
{
    var entityList = new List<T>();

    var query = _container.GetItemLinqQueryable<T>(requestOptions: new QueryRequestOptions { MaxItemCount = -1 })
       .Where(predicate).OrderByDescending(x => x.TimeStamp).AsQueryable();

    using (var iterator = query.ToFeedIterator())
    {
        while (iterator.HasMoreResults)
        {
            entityList.AddRange(
                await iterator.ReadNextAsync());
        }
    }

    return entityList;
}

参考(智能感知文档):https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.cosmos.feediterator-1?view=azure-dotnet#examples