[英]Azure Table Storage service 2.0 case sensitive filter
如何在Azure Table storage 2.0上執行區分大小寫的篩選器?
如果我這樣做查詢
TableQuery.GenerateFilterCondition("ShortUrl", QueryComparisons.Equal, "Abc");
它將返回帶有shortUrl“ Abc”和“ ABC”的2條記錄
生成的查詢顯示如下
/devstoreaccount1/Articles?$filter=shortUrl%20eq%20%27Abc%27&timeout=90
這里是顯示1.7版本的解決方案在這里 ,但這並不適用於2.0版本。 我已經檢查了DataService文檔 ,那里沒有提到。
由於表存儲基於OData協議進行查詢,因此在比較字符串值時為何其行為不同。 我確定Odata“ eq”運算符應該區分大小寫。
使用此查詢檢查OData Api Explorer
http://services.odata.org/V3/OData/OData.svc/Products?$filter= Name eq 'Bread'
然后將其更改為面包。
根據此處的文檔:
過濾器字符串的所有部分均區分大小寫。
因此,我建議您嘗試使用真正的表存儲,而不是開發存儲。 如果您在真正的存儲服務上發現此行為,請再次在此處寫信,團隊將收到警報!
另外,請使用最新的SDK /工具(當前為2.0)。 如果在Development Storage 2.0中發現此行為,請再次更新您的問題,這可能是Development Storage中的錯誤。
但是無論如何,我建議您在測試這種“敏感”功能時使用真實的存儲帳戶。 我幾乎從不使用開發存儲帳戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.