Azure Table Storage Service 2.0区分大小写的过滤器

时间:2013-06-08 03:17:11

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

如何在Azure Table存储2.0上执行区分大小写的过滤器?

如果我这样做的话 TableQuery.GenerateFilterCondition("ShortUrl", QueryComparisons.Equal, "Abc");

它将返回2条记录,其中包含shortUrl“Abc”和“ABC”
生成的查询显示如下

/devstoreaccount1/Articles?$filter=shortUrl%20eq%20%27Abc%27&timeout=90

版本1.7的解决方案显示为here,但这不适用于2.0版。我检查了DataService Documentation,但那里没有提到。

由于表存储查询基于OData协议,因此在比较字符串值时它的行为会有所不同。我确信Odata“eq”运算符应该区分大小写 使用此查询检查OData Api Explorer

http://services.odata.org/V3/OData/OData.svc/Products?$filter= Name eq 'Bread'

然后将其改为面包。

1 个答案:

答案 0 :(得分:2)

根据文件here

  

过滤字符串的所有部分都区分大小写。

所以我建议您尝试一个真正的表存储,而不是开发存储。如果您在真实存储服务上发现此行为,请再次写在此处,团队将收到提醒!

另请使用最新的SDK / Tools(目前为2.0)。如果您在开发存储2.0中发现此行为,请再次更新您的问题,这可能是开发存储中的错误。

但无论如何,我建议您在测试此类“敏感”功能时使用真实存储帐户。我几乎从不使用开发存储帐户。