将ODataQuery转换为TableQuery以使用OData查询Azure表存储

时间:2018-03-11 20:51:28

标签: c# azure odata azure-storage azure-table-storage

我正在使用Azure表存储,我希望能够使用OData进行查询。我遇到了Microsoft.Rest.Azure.OData.ODataQuery课,但我找不到任何关于如何消费的例子。

CloudTable对象允许通过TableQuery<T>对象进行查询,那么有没有办法将ODataQuery转换为TableQuery

我知道早期版本的Azure表存储使用了底层的OData API,但我不知道是否仍然如此,我还没有找到任何文档详细说明该表是否可以通过OData公开。

任何人都可以解释如何使用OData查询Azure表存储 - 最好是通过库吗?

修改
为清楚起见,我知道表存储公开了一个接受OData查询的REST API;我正在寻找的是一种以编程方式传递OData查询的方法:如果我有一个ODataQuery对象,我该如何使用它来查询CloudTable对象?

2 个答案:

答案 0 :(得分:1)

  

任何人都可以解释如何使用OData查询Azure表存储 - 最好是通过库吗?

我们可以从Querying Tables and Entities得到答案。 我们还可以从Get started with Azure Table storage using .NET

获取C#演示代码
  

Table服务支持以下查询选项,这些选项符合OData协议规范。您可以使用这些选项来限制查询返回的表,实体或实体属性集。

enter image description here

<强>更新

如果我们使用fiddler捕获库请求,我们可以得到该库在发送请求之前构造OData查询。

enter image description here

  

我正在寻找的是一种以编程方式传递OData查询的方法:如果我有一个ODataQuery对象,我该如何使用它来查询CloudTable对象?

目前,Azure表存储并不完全支持OData协议规范。据我所知,不支持直接使用OdataQuery对象。

您可以将feedback提供给azure团队。

答案 1 :(得分:1)

如果您的OData查询可以用字符串表示,则可以使用TableQuery.FilterString属性。