未实现返回 501 的 C# Azure 表查询

本文关键字:Azure 查询 实现 返回 | 更新日期: 2023-09-27 18:31:01

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

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

然后我执行一个ExecuteQuerySegmentedAsync,但由于某种原因,它抛出了以下异常:

mscorlib中发生了类型为"Microsoft.WindowsAzure.Storage.StorageException"的第一次机会异常.dll

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

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

未实现返回 501 的 C# Azure 表查询

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

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

另请记住,Blob 存储只能访问常规用途的表服务。因此,如果遇到此问题,并且知道已设置 blob 存储资源,则它将无法正常工作。