Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

Tableの部分一致

こんばんは、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サーバーで実装されているみたいだから、ロケールが影響するんですかね−。英語版の開発環境作ればいけそうな気がしますが。

それでは。