带排序的 Cosmos DB 分页

Cosmos DB pagination with sorting

我正在尝试使用 LINQ 在数据库端进行分页和排序。根据我的阅读,Cosmos db 不支持子查询,这意味着我可以进行分页或排序。

我的问题是我想是否有任何选项可以超越它?

这是我的代码:

var query = documentContainer.GetItemLinqQueryable<CosmosEntity>(true)
                .Where(p => p.PartitionKey == id)
                .Skip(searchRequest.Qualifiers.RecordsPerPage * (searchRequest.Qualifiers.CurrentPage - 1))
                .Take(searchRequest.Qualifiers.RecordsPerPage)
                .OrderBy(x => x.DocumentType)

可惜了returns

OFFSET LIMIT' clause is not supported in subqueries.

有什么方法可以让它发挥作用吗?我想我可以在 CosmosDB 上进行分页并在服务器端的内存中进行排序,但这不是理想的情况...

在此先致谢!

你能试试这个吗?在 skip.

之前包含 ORDER BY
var query = documentContainer.GetItemLinqQueryable<CosmosEntity>(true)
                .Where(p => p.PartitionKey == id)
                .OrderBy(x => x.DocumentType)
                .Skip(searchRequest.Qualifiers.RecordsPerPage * (searchRequest.Qualifiers.CurrentPage - 1))
                .Take(searchRequest.Qualifiers.RecordsPerPage)