AzureテーブルストレージでのPartitionKeyで照会するには?
-
19-09-2019 - |
質問
私が書籍の次TableServiceContextクラスを持って、私はのPartitionKeyによって、テーブルブックを照会したい、という事実を無視してください 私は本の名前としてパーティション・キーを使用しています、これはちょうど私の学習がたのためである。
public class BookDataServiceContext: TableServiceContext
{
public BookDataServiceContext(string baseAddress, StorageCredentials credentials)
: base(baseAddress, credentials)
{
}
public IQueryable<Book> Books
{
get
{
return this.CreateQuery<Book>("Books");
}
}
public void AddMessage(string name, int value)
{
this.AddObject("Books", new Book {PartitionKey=name, BookName = name, BookValue = value});
this.SaveChanges();
}
public Book GetBookByPartitionKey(Guid partitionKey)
{
var qResult = this.CreateQuery<Book>("Books");
This doesnt work ----> // qResult = qResult.Where(e => (e.PartitionKey.CompareTo(partitionKey)==0));
}
}
私はその最後の行に「暗黙のうちに 『System.Data.Services.Client.DataServiceQuery』にタイプ 『System.Linq.IQueryable』を変換できません。明示的な変換は、(あなたがキャストが欠けている?)存在」を取得します。
すべてのヘルプは理解されるであろう!
解決
qResult
はすでにコンパイラによってタイプが割り当てられています。あなたが別のタイプにそれを再割り当てしようとしているが、それが許可されていません。
これを試してみてください。
var someOtherName = qResult.Where(e => (e.PartitionKey.CompareTo(partitionKey)==0));
の編集:のそれは、プロパティが間違った型であるあなたの本のように見えます。
。public DataServiceQuery<Book> Books
{
get
{
return this.CreateQuery<Book>("Books");
}
}
public Book GetBookByPartitionKey(string partitionKey)
{
var qResult = Books.Where(e => (e.PartitionKey.CompareTo(partitionKey)==0));
}
所属していません StackOverflow