こんばんは、statemachineです。ちょっと前のAzureフォーラムネタから。
Azure Storage Tableでの部分一致検索について
部分一致が、Azure環境と開発ストレージ改めストレージエミュレータと異なるという件。
以下、ストレージエミュレータで、
- \u0000 〜 \00ff でやると結果がヒットするけど
- \u0000 〜 \ffff でやると結果がヒットしない
Azure環境はいずれも結果がヒットするんですけど。
void Main() { var account = CloudStorageAccount.DevelopmentStorageAccount; var tc = account.CreateCloudTableClient(); var sc = tc.GetDataServiceContext(); var q = from e in sc.CreateQuery<Table>("Table") // where e.Message.CompareTo("\u0000") >=0 && e.Message.CompareTo("\uffff") < 0 where e.Message.CompareTo("\u0000") >=0 && e.Message.CompareTo("\u00ff") < 0 select e; foreach(var e in q) { Console.WriteLine (e.Message); } Console.WriteLine ("End"); }
ストレージエミュレータは、SQLサーバーで実装されているみたいだから、ロケールが影響するんですかね−。英語版の開発環境作ればいけそうな気がしますが。
それでは。