0

私はWebで検索しましたが、解決策が見つかりませんでした。azureテーブルストレージのWeb APIレスポンスでpartitionkeyとrowkeyを除外しました

質問:私はazureテーブルを検索するときにazureテーブルストレージを持つwebapiを持っています。これは、partitionkeyとrowkeyに含まれるwebapi json応答です。 azureテーブルのpartitionkeyとrowkeyでWeb APIレスポンスを除外したい。

電流出力: {"のPartitionKey": "テスト"、 "のrowKey": "ABC"、 "名": "ユーザー"、 "電子メール": "[email protected]"、 "ドメイン":" QWE "}

期待出力: {" 名前 ":" ユーザ」、 "電子メール": "[email protected]"、 "ドメイン": "QWE"}

+0

はStackOverflowのへようこそ。あなたの質問は明確ではありません。仕事を完了するために私達に提供するようにあなたに頼んでいますか?もしそうなら、それは私たちがここでやっていることではありません。あなたはすでにいくつかのコードを書いていますが、それは動作していませんか?その場合は、コードとエラーメッセージを入力します。 – curt

答えて

1

私がazureテーブルをクエリすると、webapi jsonレスポンスはpartitionkeyとrowkeyに含まれます。私はazureテーブルのpartitionkeyとrowkeyでWeb APIレスポンスを除きたい。

あなたはAzureのテーブル記憶からエンティティを選択しながら、エンティティからのプロパティの限られたセットを返すためにクエリ投影を使用することを試みることができます。次のクエリは参照用です。

TableQuery<EmployeeEntity> EmpQuery = table.CreateQuery<EmployeeEntity>(); 
var query = (from ep in EmpQuery 
      where ep.PartitionKey == "pkvalue" && ep.RowKey== "rkvalue" 
      select new { Fname = ep.FirstName, Lname = ep.LastName}).AsTableQuery(); 
var emps = query.Execute(); 
1

あなたはAzureストレージ表サービスから照会する列を指定するTableQueryクラスのプロパティSelectColumnsを使用することができます。結果からのPartitionKeyとのrowKeyを除外する

+0

私は選択されたとしてすべての列を追加するのではなく、私たちはpartitionkeyとrowkey、タイムスタンプを削除することができます... – Ram

+0

私は各テーブル(全部で10テーブルすべての列を選択列として追加するのではなく、partitionkey、rowkey、timestampだけを削除することができますか? – Ram

+0

申し訳ありませんが、列を除外する方法はわかりません。 –

0

キーポイントは、ProjectSystemProperties TableRequestOptionsのを設定することです。

したがって、上記のコードは次のように変更する必要があります:ODATAを避けるために

{"odata.etag":"W/\"datetime'2017-10-27T08%3A05%3A40.6551979Z'\"","Id":"Event-1" }, 
{"odata.etag":"W/\"datetime'2017-10-27T09%3A05%3A40.6551979Z'\"","Id":"Event-2" }, 
... 

:次に、あなたがこのような応答を取得します

var query = new TableQuery<Event>() 
    .Where(
     TableQuery.GenerateFilterCondition(
      "PartitionKey", QueryComparisons.Equal, partitionKey)) 
    .Select(new[] { "Id" }); 

var results = table.ExecuteQuery(query, 
    new TableRequestOptions { ProjectSystemProperties = false }); 

var emps = query.Execute(new TableRequestOptions { ProjectSystemProperties = false }); 

別の実施例結果として.etagを取得するには、TableRequestOptionsでPayloadFormatを指定し、必要なものを正確に取得します。

var results = table.ExecuteQuery(query, 
    new TableRequestOptions { 
     ProjectSystemProperties = false, 
     PayloadFormat = TablePayloadFormat.JsonNoMetadata 
}); 

結果:

{ "Id":"Event-1" },{ "Id":"Event-2" },... 
関連する問題