Azure Table Storage에서 파티션 키로 쿼리하는 방법은 무엇입니까?

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

  •  19-09-2019
  •  | 
  •  

문제

나는 다음과 같은 TableserViceContext 클래스를 가지고 있습니다. 파티션 키에 의해 테이블 ​​북을 쿼리하고 싶습니다. 파티션 키를 책 이름으로 사용하고 있다는 사실을 무시하십시오. 이것은 내 학습을위한 것입니다.

   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