public override async Task DeleteSetAsync(RedisKeyObject setKey, CancellationToken token = default(CancellationToken)) { var cloudTable = await GetCloudTableAsync(setKey.Prefix, token); var query = new TableQuery <DynamicTableEntity> { FilterString = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, GetPartitionKey(setKey)) }; var dynamicTableEntities = await cloudTable.ExecuteQuerySegmentedAsync(query, null, token); do { var batch = new TableBatchOperation(); foreach (var row in dynamicTableEntities) { batch.Delete(row); } if (!batch.IsNullOrEmpty()) { await cloudTable.ExecuteBatchAsync(batch); } dynamicTableEntities = await cloudTable.ExecuteQuerySegmentedAsync(query, dynamicTableEntities.ContinuationToken, token); } while (dynamicTableEntities.ContinuationToken != null); }