Table Storage は Count できないよ
タイトルのとおりで Table Storage は件数を取得するための API が無い。愚直に全件取得するしかない。
せめてレスポンスを軽くするための手段として、 PartitionKey
だけを Select するという手段がある。
var query = new TableQuery<DynamicTableEntity>() .Select(new string[] { "PartitionKey" }); var count = table.ExecuteQuery(query).Results.Count;
ただし単発のクエリは最大1000件までしか返ってこないので、セグメント化する必要がある。
var count = 0; var query = new TableQuery<DynamicTableEntity>() .Select(new string[] { "PartitionKey" }); TableContinuationToken token = null; do { var queryResult = table.ExecuteQuerySegmented(query, token); count += queryResult.Results.Count; token = queryResult.ContinuationToken; } while (token != null);
しょっちゅう Count するべきものじゃないんだろうな。