Похоже, что метод DeleteTableIfExists
для CloudTableClient
был прекращен и перемещен в Microsoft.WindowsAzure.Storage.Table.CloudTable
.
Я написал метод расширения EnsureTableIsEmpty
, который удаляет и воссоздает таблицу, используя Полли, чтобы обеспечить базовую стратегию повторения. Ниже код:
public static async Task<CloudTable> EnsureTableIsEmpty(this CloudTable table)
{
await table.DeleteIfExistsAsync();
await Policy
.Handle<StorageException>((exc) => { return exc.Message == "Conflict"; })
.WaitAndRetryAsync(
5,
retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)),
(exception, timeSpan, retryCount, context) =>
{
//Logging stuff
})
.ExecuteAsync(() => table.CreateIfNotExistsAsync());
return table;
}
Работает вроде хорошо. Любое предложение или импровизация были бы хороши.