带排序的 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)
我正在尝试使用 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)