Pergunta

Eu tenho a seguinte classe TableServiceContext para livros, quero consultar os livros de mesa pela PartitionKey, por favor ignore o fato de que Eu estou usando a chave de partição, como o nome do livro, este é apenas para o meu amor de aprendizagem

   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));

            } 
}

Eu recebo um "Não é possível converter implicitamente tipo 'System.Linq.IQueryable' para 'System.Data.Services.Client.DataServiceQuery'. Existe uma conversão explícita (faltam um elenco?)" Nessa última linha.

Qualquer ajuda será apreciada!

Foi útil?

Solução

qResult já está atribuído um tipo pelo compilador. Você está tentando re-atribuí-la a um tipo diferente, mas isso não é permitido.

Tente este

var someOtherName = qResult.Where(e => (e.PartitionKey.CompareTo(partitionKey)==0));

Editar:. Parece que seus Livros propriedade é o tipo errado

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));
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top