Wie durch PartitionKey in Azure Tabellen Speicher abzufragen?
-
19-09-2019 - |
Frage
Ich habe folgende TableServiceContext Klasse für Bücher, ich mag von der PartitionKey die Tabelle Bücher abzufragen, ignorieren Sie die Tatsache, dass Ich bin die Partition Schlüssel als das Buch Namen, das ist nur für mein Lernen sakes
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));
}
}
Ich erhalte eine „nicht implizit Kann Typ‚System.Linq.IQueryable‘auf‚System.Data.Services.Client.DataServiceQuery‘umwandeln. Eine explizite Konvertierung vorhanden ist (sind Sie nicht eine Besetzung?)“ Auf der letzten Zeile.
Jede Hilfe wird geschätzt!
Lösung
qResult
ist bereits eine Art durch den Compiler zugewiesen. Sie versuchen, erneut zuweisen es auf eine andere Art, aber das ist nicht erlaubt.
Versuchen Sie diese
var someOtherName = qResult.Where(e => (e.PartitionKey.CompareTo(partitionKey)==0));
Edit:. Es sieht aus wie Ihre Bücher Eigenschaft der falsche Typ ist
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));
}