C#azure表查询返回501未实现

时间:2016-01-20 05:00:17

标签: c# azure azure-table-storage

我正在使用Azure表存储并且有一个表我正在尝试查询行键以某些值结束的位置,我有兴趣过滤。这是我的代码:

var query = table.CreateQuery<DynamicTableEntity>().Where(o => o.PartitionKey == somePartitionKey && o.RowKey.EndsWith(string.Format("_{0}", aclId))).AsTableQuery();

然后我执行ExecuteQuerySegmentedAsync但由于某种原因引发以下异常:

  

类型&#39; Microsoft.WindowsAzure.Storage.StorageException&#39;的第一次机会异常。发生在mscorlib.dll

     

其他信息:远程服务器返回错误:(501)未实现。

为什么会这样?我的代码/查询有问题导致它失败吗?无论如何,我真的需要一种有效的方法来检索行键中某些值结束的分区中的所有记录。

2 个答案:

答案 0 :(得分:3)

您收到此错误的原因是您尝试执行不受支持的操作。截至今天,Azure Table Service不支持EndsWith查询运算符。有关支持的LINQ运算符列表,请参阅以下链接:https://msdn.microsoft.com/en-us/library/azure/dd135725.aspx

在您的方案中,您需要先在客户端下载实体,然后在这些实体上应用EndsWith运算符。

答案 1 :(得分:0)

还请记住,Blob存储仅具有通用功能,不能访问表服务。因此,如果您遇到了这种情况,并且知道已经设置了Blob存储资源,那么它将无法正常工作。