Come interrogare da PartitionKey in Azure Storage Table?
-
19-09-2019 - |
Domanda
Ho la seguente classe TableServiceContext per i libri, voglio interrogare la tabella libri dal PartitionKey, si prega di ignorare il fatto che Sto usando la chiave di partizione come il nome del libro, questo è solo per il mio amor di apprendimento
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));
}
}
ho un "Impossibile convertire implicitamente il tipo 'System.Linq.IQueryable' a 'System.Data.Services.Client.DataServiceQuery'. Esiste una conversione esplicita (che le manca un cast?)" A che l'ultima riga.
Ogni aiuto sarà apprezzato!
Soluzione
qResult
è già stato assegnato un tipo dal compilatore. Stai cercando di ri-assegnarlo a un tipo diverso, ma che non è consentito.
Prova questo
var someOtherName = qResult.Where(e => (e.PartitionKey.CompareTo(partitionKey)==0));
Modifica Sembra che i tuoi libri proprietà è il tipo sbagliato
.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));
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow