如何使用 Azure.Data.Tables 跳过、获取和订购?

Posted

技术标签:

【中文标题】如何使用 Azure.Data.Tables 跳过、获取和订购?【英文标题】:How to Skip, Take and Orderby using Azure.Data.Tables? 【发布时间】:2022-01-15 07:05:07 【问题描述】:

Microsoft 建议使用 azure.data.tables nuget 和命名空间,而不是旧的 microsoft.azure.cosmos.table 命名空间,但它没有很好的文档记录,我在他们的 Github 页面旁边找不到更多信息。在这里,他们描述了基本查询,但我的问题是;是否可以从服务器而不是客户端获取排序和过滤的实体?

例如,对于其他库,可以使用 TableQuery 并执行 takeorderby 操作,如 here 所述

我基本上想要实现的目标

var result= query.OrderByDescending(l => l.Timestamp).Skip((pagenumber- 1) * count.Value).Take(count.Value);

是否可以使用 Azure.Data.Tables 命名空间在服务器端实现此查询?

【问题讨论】:

【参考方案1】:

您只能从这些运算符中使用“Take”,因为 Azure 表存储不支持其他两个运算符。

有关 Azure 表存储支持的 LINQ 运算符列表,请参阅此链接:https://docs.microsoft.com/en-us/rest/api/storageservices/query-operators-supported-for-the-table-service。

【讨论】:

所以你的意思是我们只能在客户端。但是其他库支持并且rest api也是可能的吗?这意味着从技术上讲它已经实现,但可能不是使用 Azure.data.tables 库 Ops 刚刚看到了仅适用于 CosmosDb 端点的注释 :( 是的,没错。 Azure 存储表不支持它。我不确定 Azure Cosmos DB Table API 是否也支持它(不过我可能错了)。

以上是关于如何使用 Azure.Data.Tables 跳过、获取和订购?的主要内容,如果未能解决你的问题,请参考以下文章

Azure.Data.Tables.TableClient 是线程安全的吗?

Azure 表存储 - 501 未实现

从 Azure 表存储中提取字节值

跳过Maven 打包时的测试,如何跳过Maven 打包测试

如何跳过软件登陆界面

如何防止滚动使用jquery跳过列表中的项目?