2017-03-29 4 views
0

私はazure documentDBプラットフォームでC#で開発しました。 私のアプリケーションでページングアーキテクチャを実装しようとしています。 私のコード:AsDocumentQuery()関数の継続トークン - CreateDocumentQuery ExecuteNextAsync関数が存在しません

var userQuery = _client.CreateDocumentQuery<User>(
       _uriUsersCollection, queryStr, options).AsDocumentQuery(); 

私のコードショーのエラー(それはのIQueryable方法の一部として認識していない(私は関数が認識され、インターネットでいくつかの例を参照)。だから私がしようそれが存在していないquery.ExecuteNextAsyncをアクティブにする。 を私はMicrosoft.Azure.Documents.ClientのDLLのバージョンで動作1.11.0.0。 おかげであなたの助け MAK

答えて

3

を継続トークンによるシナリオのために私は多くの場合、このヘルパークラスを使用します:

付き

:今

public static async Task<PagedResults<T>> ToPagedResults<T>(this IQueryable<T> source) 
{ 
    var documentQuery = source.AsDocumentQuery(); 
    var results = new PagedResults<T>(); 

    try 
    { 
     var queryResult = await documentQuery.ExecuteNextAsync<T>(); 
     if (!queryResult.Any()) 
     { 
      return results; 
     } 
     results.ContinuationToken = queryResult.ResponseContinuation; 
     results.Results.AddRange(queryResult); 
    } 
    catch 
    { 
     //documentQuery.ExecuteNextAsync throws an Exception if there are no results 
     return results; 
    } 

    return results; 
} 

、あなたは多かれ少なかれ、このようなあなたのコードでそれを使用することができます。

var options = new FeedOptions() { MaxItemCount = 20 };//If 20 is your page size 
var continuationToken = string.Empty; 
var allResults = new List<User>(); 
do{ 
    if (!string.IsNullOrEmpty(continuationToken)) 
    { 
      options.RequestContinuation = continuationToken; 
    } 
    var userQuery = _client.CreateDocumentQuery<User>(_uriUsersCollection, queryStr, options).ToPagedResults(); 
    continuationToken = userQuery.ContinuationToken; 
    allResults.AddRange(userQuery.Results);  
}while(!string.IsNullOrEmpty(continuationToken)); 
3

AsDocumentQueryが定義された拡張メソッドであるとして、あなたのコード内でMicrosoft.Azure.Documents.Linq名前空間を含めてくださいそこ。

using Microsoft.Azure.Documents; 
using Microsoft.Azure.Documents.Client; 
using Microsoft.Azure.Documents.Linq;//Add this line 

enter image description here

+0

のGauravグッドポインタ、これはおそらく、根本的な原因です。 –

関連する問題