我有以下TableServiceContext类用于书籍,我想通过partitionKey查询表Books,请忽略这一事实 我正在使用分区键作为书名,这只是为了我的学习习惯
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.Linq.IQueryable'隐式转换为'System.Data.Services.Client.DataServiceQuery'。在最后一行上存在显式转换(你是否错过了演员?)”。 / p>
任何帮助将不胜感激!
答案 0 :(得分:1)
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));
}