2016-07-07 13 views
1

以下の拡張メソッドはASP.NET Coreプロジェクトでコンパイルされず、Visual StudioではメソッドExecuteQuerySegmentedAsyncが問題として強調表示されます。エラー(コードの下)は、私が欲しくないメソッドシグネチャを引用しています。私はこの1つhereが欲しい。AzureストレージテーブルExecuteQuerySegmentedAsync拡張メソッドの呼び出しエラー

internal static class CloudTableExtensions 
{ 
     public static async Task<IList<DynamicTableEntity>> ExecuteQueryAsync(this CloudTable table, 
      TableQuery query, CancellationToken cancellationToken = default(CancellationToken)) 
    { 
     var items = new List<DynamicTableEntity>(); 
     TableContinuationToken token = null; 
     do 
     { 
      var seg = await table.ExecuteQuerySegmentedAsync(query, token, cancellationToken); 

      token = seg.ContinuationToken; 
      items.AddRange(seg); 


     } while (token != null && !cancellationToken.IsCancellationRequested 
      && (query.TakeCount == null || items.Count < query.TakeCount.Value)); 


     return items; 
    } 
} 

エラーがある:

Error CS0411 The type arguments for method 'CloudTable.ExecuteQuerySegmentedAsync<T, TResult>(TableQuery<T>, EntityResolver<TResult>, TableContinuationToken)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
+0

は、.NETコアの最新リリースを使用していますか?どのバージョンのwindowsazure.storageを使用していますか? – Thomas

+0

はいASP.NET Core 1.0.0とWindowsAzure.Storage 7.1.3を使用しています - プレビュー –

答えて

1

ASP.NETコア1.0.0 ためWindowsAzure.Storage 7.1.3-Preview nugetパッケージこのシグネチャとExecuteQuerySegmentedAsync機能が含まれていません。 github repoにこの問題を作成する必要があります。

あなたがキャンセルトークンを渡す必要がある場合はそれ以外の場合は、あなたがthisを使用することができます。

internal static class CloudTableExtensions 
{ 
    public static async Task<IList<DynamicTableEntity>> ExecuteQueryAsync(this CloudTable table, 
     TableQuery query, CancellationToken cancellationToken = default(CancellationToken)) 
    { 
     var items = new List<DynamicTableEntity>(); 
     TableContinuationToken token = null; 
     do 
     { 
      var seg = 
       await 
        table.ExecuteQuerySegmentedAsync(query, token, new TableRequestOptions(), new OperationContext(), 
         cancellationToken); 

      token = seg.ContinuationToken; 
      items.AddRange(seg); 


     } while (token != null && !cancellationToken.IsCancellationRequested 
       && (query.TakeCount == null || items.Count < query.TakeCount.Value)); 


     return items; 
    } 
} 
関連する問題