Windows Azure Storage、Table編

さてさて、dotwowは現在cloudに移行中のため現在サイトが動きません。
今回は、AzureのStorageのTableを利用する際の覚え書きです。

まずはQue編の時と同じく、
XMLにコンフィグを記載して、StorageClientを使用すると便利です。

次にContextクラスのラッパーとEntityクラスを作りました。
Contextクラス

  public class SampleDataContext : TableStorageDataServiceContext
    {
        public SampleDataContext(StorageAccountInfo accountInfo) : base(accountInfo)
        {
            
        }

        public IQueryable<SampleEntity> SampleEntities
        {
            get
            {
                return this.CreateQuery<SampleEntity>("SampleEntity");
            }
        }

        public void AddSampleEntity(SampleEntity entity)
        {
            this.AddObject("SampleEntity", entity );
            this.SaveChanges();
        }
    }

Entityクラス

 public class SampleEntity : Microsoft.Samples.ServiceHosting.StorageClient.TableStorageEntity
    {
        public SampleEntity()
        { 
            
        }

        public string Name { get; set; }
       
    }

Entityに含まれるPartitionKeyとRowKeyはnullにすることができません。
PartitionKeyは一意である必要があります。
また、:/%あたりの記号が使えないようです?

後はLinqが使えるので非常に楽にクエリーが可能です。


・リレーショナルデータベースを使用できない。
1:多の関係を表すのが少々めんどくさいです。
どうやるのがスマートなんでしょう。


・で、コードを書いてみたのですが単品は取り出せるのですが、
まとめて取り出してforeachなどに使用しようとすると、
The requested operation is not implemented on the specified resource.

ってエラーがでました。
直接はさわれないようです。
もう少し調べます。


・new CloudApp()
いつの間にか国の制限がかかっていた。
いつの間にか締め切りが延びてた。
いつの間にか日本は日本で別のアワードを設けてた。
間に合えばいいなぁ・・・。
http://msdn.microsoft.com/ja-jp/azure/dd939048.aspx

あと、日本語インターフェースでいいんだろうか?