2017-10-31 26 views
0

TableEntityから継承する複数のエンティティがあるとします。サンプルをAzure Storageに書き込むサンプル?

は、私は、このリンクは、以下の私は、コード例を探していますTableEntityAdapter

https://docs.microsoft.com/en-us/dotnet/api/microsoft.windowsazure.storage.table.tableentityadapter-1.-ctor?view=azure-dotnet

言及したCacheManagerような一般的なクラスを、使用、およびAzureストレージ異なるT

に書きたいと思います。 ありがとう、Peter

答えて

0

私はTableEntityAdapterクラスを作成しましたので、私は使用例を提供しようとしますが、質問は1ヶ月前に尋ねられますが、うまくいけばまだ有用です。

まずそれがSDKでユニットテストによってテストされるかを見てみましょう:TableEntityAdapterは、関連するテストを見つけるため https://github.com/Azure/azure-storage-net/blob/master/Test/ClassLibraryCommon/Table/TableOperationUnitTests.cs

検索を..もちろんのこと、ユニットテストは、実際のテーブルストレージサービスに書き込めません彼らはAPI呼び出しの観点から読んだり書いたりするときに何が起こるかをシミュレートしますが、あなたには良いアイデアを与えるべきです。以下は

単純化されたサンプルコードです:

表の記憶域に、カスタム.NETオブジェクトを書き込むには:

 // 1. ShapeEntity is the custom .Net object that we want to write and read from Table Storage. 
      ShapeEntity shapeEntity = new ShapeEntity(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "square", 4, 4); 

      OperationContext operationContext = new OperationContext(); 
    // 2. Instantiate a TableEntityAdapter object, passing in the custom object to its constructor. Internally this instance will keep a reference to our custom ShapeEntity object. 

      TableEntityAdapter<ShapeEntity> writeToTableStorage = new TableEntityAdapter<ShapeEntity>(shapeEntity, partitionKey, rowKey); 

// 3. Now you can write the writeToTableStorage object to Table Storage just like any other object which inherits from ITableEntity interface. The TableAdapter generic class handles the boiler plate code and hand shaking between your custom .Net object and table storage sdk/service. 

To read your custom object from Table Storage: 

// 1. Read your entity back from table storage using the same partition/row key you specified (see step 2 above). You can use the Retrieve<T> table operation, specify T as TableEntityAdapter<ShapeEntity> 

// 2. This should return you the TableEntityAdapter<ShapeEntity> object that you wrote to TableStorage at step 3 above. 

// 3. To access the original ShapeEntity object, just refer to the OriginalEntity property of the returned TableEntityAdapter<ShapeEntity> object. 

vuala :) The interesting bit here is that your original ShapeEntity object does not even need to implement ITableEntity interface. It also can contain complext nested properties. TableEntityAdapter class supports these scenarios.