質問

私が書籍の次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));
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top