TableQuery 是不是支持 OrderBy?

Posted

技术标签:

【中文标题】TableQuery 是不是支持 OrderBy?【英文标题】:Does TableQuery support OrderBy?TableQuery 是否支持 OrderBy? 【发布时间】:2015-07-04 19:33:33 【问题描述】:

我不知道如何使用Azure Table Storage 将OrderBy 子句添加到TableQuery。

根据their documentation Azure supports OData $orderby。如果我尝试通过将$orderby=PartitionKey 添加到TableQuery Where 子句来破解它,那么'$' 是HTTP 编码的,因此我会收到400 服务器错误 - 所以破解它是行不通的。这是我的 hack 产生的结果:

GET /devstoreaccount1/NewTable3?$filter=PartitionKey%20ne%20%27pkey992%27%24orderby%3DName&$select=Name%2Cregistered%2CPartitionKey%2CRowKey%2CTimestamp HTTP/1.1

TableQuery 是否支持OrderBy,如果支持,那么如何支持?

【问题讨论】:

【参考方案1】:

Does TableQuery support OrderBy, and if yes then how?

没有。截至今天,Table Service 不支持Order By。请查看支持的LINQ Operatorshere列表。

您需要做的是获取数据(将按 PartitionKey 和 RowKey 排序)并在客户端应用排序。

【讨论】:

是的,我现在找到了 Azure 表服务支持的 OData 查询选项列表,但 $orderby 不在其中,很遗憾。 msdn.microsoft.com/en-us/library/azure/dd894031.aspx

以上是关于TableQuery 是不是支持 OrderBy?的主要内容,如果未能解决你的问题,请参考以下文章

使用 slick 3.0.0-RC1 在 TableQuery 上找不到方法结果

如何在 azure 表存储中使用 new TableQuery<T>

JOIN,WHERE判断和ORDERBY排序

分页错误:仅 LINQ to Entities 中的排序输入支持“跳过”方法。方法 'OrderBy' 必须在方法 'Skip' 之前调用

Hibernate 文档:@OrderBy - 它是不是在内存中排序?

.Net Core 3.1 中的 IEnumerable.OrderBy().First() 优化是不是记录在任何地方?