2 Stimmen

Azure Table Storage-Dienst 2.0 – filtern mit Groß- und Kleinschreibung

Wie führt man einen Groß- und Kleinschreibung-sensitiven Filter auf dem Azure Tabellenspeicher 2.0 durch?

Wenn ich diese Abfrage durchführe
TableQuery.GenerateFilterCondition("ShortUrl", QueryComparisons.Equal, "Abc");

Es wird 2 Datensätze mit ShortUrl "Abc" und "ABC" zurückgeben
Die generierte Abfrage sieht so aus

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

Es gibt eine Lösung für Version 1.7, die hier gezeigt wird hier, aber dies ist nicht anwendbar auf Version 2.0. Ich habe DataService-Dokumentation überprüft und es wird dort nicht erwähnt.

Da Tabellenspeicherabfragen auf dem OData-Protokoll basieren, warum verhält es sich anders beim Vergleichen von Zeichenfolgenwerten. Ich bin mir sicher, dass der OData-Operator "eq" Groß- und Kleinschreibung-sensitiv sein soll.
Überprüfen Sie OData Api Explorer mit dieser Abfrage

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

Dann ändern Sie es zu Brot.

3voto

astaykov Punkte 30540

Gemäß hier Dokumentation :

Alle Teile des Filters sind case-sensitive.

Daher empfehle ich, dass Sie einen echten Tabellenspeicher ausprobieren, nicht den Entwicklungsspeicher. Wenn Sie dieses Verhalten im echten Speicherdienst finden, schreiben Sie bitte hier erneut, das Team wird alarmiert!

Verwenden Sie auch die neuesten SDK/Tools (aktuell 2.0). Wenn Sie dieses Verhalten im Entwicklungsspeicher 2.0 finden, aktualisieren Sie Ihre Frage erneut, dies könnte ein Fehler im Entwicklungsspeicher sein.

Aber in jedem Fall empfehle ich, einen echten Speicherkonto zu verwenden, wenn Sie solche "sensiblen" Funktionen testen. Ich benutze fast nie ein Entwicklungsspeicherkonto.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X