我正在尝试仅通过rowkey值从azure存储过滤器中删除行。
但是我看不到任何删除操作的重载,在删除操作中,我们只能用rowkey进行过滤。是否有其他选择可从azure存储表中删除具有特定rowkey的记录的行?
RemoveEntityByRowKey('123456');
public static void RemoveEntityByRowKey(string myRowKey)
{
try
{
CloudTable table = _tableClient.GetTableReference("MyAzureTable");
TableOperation delteOperation = TableOperation.Delete(myRowKey);
table.Execute(delteOperation);
}
catch (Exception ex)
{
LogError.LogErrorToAzure(ex);
throw;
}
}
最佳答案
为了删除实体,您需要PartitionKey
和RowKey
( Delete Entity REST API
)。因此,您需要做的是首先获取具有匹配的RowKey
的实体。提取此实体后,您应该可以按照答案中的说明调用TableOperation.Delete
。
但是,不建议通过RowKey
来获取实体,因为它将执行全表扫描。如果表的大小很小,则可能不会出现问题,但是当表包含大量实体时,可能会出现问题。此外,RowKey
在Partition
中是唯一的,即在一个表中,只有一个实体具有PartitionKey
/RowKey
组合。换句话说,您可能在不同的RowKey
中具有相同Partitions
的实体。因此,当您仅通过RowKey
提取实体时,您可能会获得不止一个实体。您需要确保要删除正确的实体。
关于c# - Azure存储表逐行删除键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37201006/