使用する必要がありますTableOperation.Delete
:
var storageAccount = CloudStorageAccount.DevelopmentStorageAccount;
var table = storageAccount.CreateCloudTableClient()
.GetTableReference("tempTable");
table.CreateIfNotExists();
// Add item.
table.Execute(TableOperation.Insert(new TableEntity("MyItems", "123")));
// Load items.
var items = table.ExecuteQuery(new TableQuery<TableEntity>());
foreach (var item in items)
{
Console.WriteLine(item.PartitionKey + " - " + item.RowKey);
}
// Delete item (the ETAG is required here!).
table.Execute(TableOperation.Delete(new TableEntity("MyItems", "123") { ETag = "*" }));
削除は、存在するエンティティに対してのみ機能します。古いクライアントにはオプションがありましたが、操作ContinueOnError
と互換性がありませんでした(ここで説明されているように)。Batch
エンティティが存在することがわからない場合に削除のバッチを成功させる唯一の方法は、最初にエンティティを追加する (または既に存在する場合は置き換える) ことです。
var ensureItemsBatch = new TableBatchOperation();
ensureItemsBatch.InsertOrReplace(new MyEntity("MyItems", "123") { Active = false });
ensureItemsBatch.InsertOrReplace(new MyEntity("MyItems", "456") { Active = false });
ensureItemsBatch.InsertOrReplace(new MyEntity("MyItems", "789") { Active = false });
table.ExecuteBatch(ensureItemsBatch);
var deleteItemsBatch = new TableBatchOperation();
deleteItemsBatch.Delete(new MyEntity("MyItems", "123") { ETag = "*" });
deleteItemsBatch.Delete(new MyEntity("MyItems", "456") { ETag = "*" });
deleteItemsBatch.Delete(new MyEntity("MyItems", "789") { ETag = "*" });
table.ExecuteBatch(deleteItemsBatch);