Как удалить объекты таблицы Azure на основе результатов запроса диапазона
Я пытаюсь удалить объекты таблицы Azure на основе моего фильтра диапазона. Все, что я пытаюсь здесь, это удалить старые записи.
Я смог получить правильные энтиты на основе моего условия поиска по диапазону.
TableQuery<Tables> rangeQuery = new TableQuery<Tables>().Where(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "DeleteTablename"),
TableOperators.And,
TableQuery.GenerateFilterConditionForDate("StartedOn", QueryComparisons.LessThan, DateTime.Now.Add(new TimeSpan(0, -60, 0)))));
foreach(Tables rows in logTable.ExecuteQuery(rangeQuery)) {
log.Info($"{rows.PartitionKey}, {rows.RowKey}\t{rows.FinishedOn}\t{rows.Timestamp}");
}
//till here it works
TableResult retrievedResult = logTable.ExecuteQuery(rangeQuery);
Tables deleteEntity = (Tables)retrievedResult.Result;
я получаю следующие ошибки
Не удалось неявно преобразовать тип 'System.Collections.Generic.IEnumerable' в 'Microsoft.WindowsAzure.Storage.Table.TableResult' timertest
Не удается преобразовать тип "Microsoft.WindowsAzure.Storage.Table.TableResult" в "timertest.Tables" timertest
Заметки:
timertest
мойnamespace
Tables
это класс, который расширяетсяTableEntity
класс, чтобы добавить мои собственные пропорции в лазурной таблице.
Есть идеи, чтобы удалить объекты на основе диапазона?
1 ответ
Есть идеи, чтобы удалить объекты на основе диапазона?
В таблицах Azure для массового удаления необходимо использовать Entity Group Transaction
и добавьте объекты, которые вы хотите удалить в пакете, а затем выполните эту пакетную операцию. Для объектов, которые будут обрабатываться (создавать, обновлять или удалять) в пакете:
- Они должны быть одинаковыми
PartitionKey
значение. - В пакет может быть включено до 100 объектов.
- Максимальный размер полезной нагрузки пакета может составлять 4 МБ.
Обратите внимание, что даже если в групповой транзакции происходит сбой одного объекта, вся транзакция откатывается.
Подробнее о пакетной транзакции сущностей можно узнать здесь: https://docs.microsoft.com/en-us/rest/api/storageservices/performing-entity-group-transactions.