كيفية الاستعلام عن طريق partinationkey في تخزين طاولة أزور؟

StackOverflow https://stackoverflow.com/questions/2231664

  •  19-09-2019
  •  | 
  •  

سؤال

لدي الفئة TILDERVICECONTEX التالية للكتب، أريد الاستئصال من كتب الجدول بواسطة PartinTekey، يرجى تجاهل حقيقة أنني أستخدم مفتاح التقسيم كاسم الكتاب، وهذا هو فقط لأسفالي التعلم

   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 '. يوجد تحويل صريح (هل تفتقد صرفة؟)

سيكون موضع تقدير أي مساعدة!

هل كانت مفيدة؟

المحلول

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