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);
    }