Câu hỏi ban đầu được hỏi tại http://entityframework.codeplex.com/discussions/399499#post928179.IQueryable không triển khai IDbAsyncEnumerable
Chúc ngày vui vẻ! Xin vui lòng cho tôi biết nếu nó là sai chỗ để gửi câu hỏi này.
Tôi có một câu hỏi như sau:
IQueryable<Card> cardsQuery =
dataContext.Cards
.Where(predicate)
.OrderByDescending(kc => kc.SendDate)
.AsQueryable();
Sau đó, tôi thử:
Task<Card[]> result = cardsQuery.ToArrayAsync();
Và sau đó ngoại lệ tăng:
The source IQueryable doesn't implement IDbAsyncEnumerable<Models.Card>
tôi sử dụng phiên bản sửa đổi 'EF 5.x Máy phát DbCotext'.
Làm cách nào để tránh?
CẬP NHẬT
nhận xét quan trọng là tôi có phương pháp để sản xuất IQuerayble<Card>
như sau:
class Repository {
public IQueryable<Card> GetKudosCards(Func<Card, bool> predicate) {
IEnumerable<KudosCard> kudosCards = kudosCardsQuery.Where(predicate);
return kudosCards
.OrderByDescending(kc => kc.SendDate)
.AsQueryable();
}
}
Arthur (tại http://entityframework.codeplex.com/discussions/399499#post928179) là đúng. Có một hoạt động khác giữa IQueryable <> và ToArrayAsync. Nó là ODataQueryOptions.ApplyTo từ gói OData. Nó thể hiện IQueryable theo các tham số OData của HTTP-request. Vì vậy, mã của tôi là đồng bộ trong khi ApplyTo là đồng bộ, phải không? –
Tôi nghĩ rằng bạn nhận được điều này khi bạn cố gắng để viết một bài kiểm tra. Nếu bạn không muốn thay đổi mã sản xuất của mình, hãy làm theo các bước tại đây: http://msdn.microsoft.com/en-us/data/dn314429.aspx # async – Rikard