新しい技術を学ぶときはいつでも、できるだけ単純な例を書くのが好きです。通常、これは参照の数が最も少ないコンソール アプリを意味します。Azure テーブル ストレージに対して読み取りと書き込みを行うアプリを作成しようとしましたが、ほとんど成功しませんでした。このハウツー ガイドをベースとして使用しましたが、Main メソッドですべてを実行してみてください。同様のアプローチはブロブ ストレージでもうまく機能しましたが、テーブル ストレージでは問題が発生しています。
このコードでテーブルを作成できました。
static void Main(string[] args)
{
Microsoft.WindowsAzure.Storage.Table.CloudTableClient tableClient =
new Microsoft.WindowsAzure.Storage.Table.CloudTableClient(
new Uri("http://mystorage.table.core.windows.net/"),
new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials("[somename]", "[somekey]"));
CloudTable table = tableClient.GetTableReference("people");
table.CreateIfNotExists();
}
このコードを実行した後、 Azure Storage Explorerを使用してストレージ内のテーブルを確認できました。(manage.windowsazure.com でテーブルを表示する方法はまだわかりません。)
ただし、レコードを挿入しようとすると (前述のハウツー ガイドで説明されているように)、競合 409 EntityAlreadyExists が発生します。Azure Storage Explorer のテーブルにレコードが表示されません。
CustomerEntity customer1 = new CustomerEntity("Harp", "Walter");
customer1.Email = "Walter@contoso.com";
customer1.PhoneNumber = "425-555-0101";
TableOperation insertOperation = TableOperation.Insert(customer1);
table.Execute(insertOperation);
また、2 つの名前空間が重複していることにも困惑しています。Microsoft.WindowsAzure.Storage.Table と Microsoft.WindowsAzure.StorageClient の両方に、たとえば CloudTableClient クラスが含まれています。クライアント名前空間が 2 つあるのはなぜですか? どちらを使用すればよいですか?
編集レコードが存在することが判明しました。Azure テーブル エクスプローラーでテーブルをダブルクリックするだけでは、テーブルの内容は表示されません。[クエリ] をクリックする必要があります。最後の質問はまだ残っています。なぜ 2 つの名前空間があるのですか?