2017-08-26 11 views
1

「継承されたメンバー 'TableEntity.RowKey」を隠すことなく、ストレージテーブルで入力バインディングを使用すると、RowKey(およびPartitionKey)にアクセスするにはどうすればよいですか?ストレージテーブルで入力バインディングを使用すると、RowKey(およびPartitionKey)にどのようにアクセスできますか?

私は喜んのPartitionKeyに基づいてカテゴリにアクセスすることができますが、私は私のクラスに新しいプロパティを追加することによって、のrowKeyを得るまで拡張しようとすると、私はエラーを取得... warning CS0108: 'Person.RowKey' hides inherited member 'TableEntity.RowKey'. Use the new keyword if hiding was intended.

#r "Microsoft.WindowsAzure.Storage" 
using Microsoft.WindowsAzure.Storage.Table; 
public static void Run(string myQueueItem, 
         IQueryable<Person> tableBinding, TraceWriter log) 
{ 
    log.Info($"C# Queue trigger:triggerblocklist processed message : [{myQueueItem}]"); 
    // int i = tableBinding.Count(); 
    // log.Info($"{i}"); 

    foreach (Person person in tableBinding.Where(p => p.PartitionKey == myQueueItem) 
      .ToList()) 
    { 
     log.Info($"RowKey:  [{person.RowKey}]"); 
     log.Info($"Categories: [{person.Categories}]"); 
    } 
} 
public class Person : TableEntity 
{ 
    // public string PartitionKey { get; set; } 
    public string RowKey { get; set; } // !!!!!!!!!!!!!!!!! 
    // public string Timestamp { get; set; } 
    public string Categories { get; set; } 
} 
+0

投票の理由は何ですか? ...それはまったくばかげた質問ではない、初心者の質問ですが、なぜ投票を下すのですか? – SteveC

答えて

5

TableEntityクラスはすでにRowKeyという名前のプロパティを持っていますので、PersonクラスはRowKeyというプロパティを定義する必要はありません。すでに基底クラスを使用しています。

あなたがここにする必要があるすべてはあなたのPersonクラスからRowKeyプロパティを削除することであり、他の変更は必要ありません。

+0

ありがとう、今私はあなたが意味することを理解し、それがうまく動作するとうれしい – SteveC

関連する問題