我正在尝试仅通过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;
            }
        }

最佳答案

为了删除实体,您需要PartitionKeyRowKey( Delete Entity REST API )。因此,您需要做的是首先获取具有匹配的RowKey的实体。提取此实体后,您应该可以按照答案中的说明调用TableOperation.Delete

但是,不建议通过RowKey来获取实体,因为它将执行全表扫描。如果表的大小很小,则可能不会出现问题,但是当表包含大量实体时,可能会出现问题。此外,RowKeyPartition中是唯一的,即在一个表中,只有一个实体具有PartitionKey/RowKey组合。换句话说,您可能在不同的RowKey中具有相同Partitions的实体。因此,当您仅通过RowKey提取实体时,您可能会获得不止一个实体。您需要确保要删除正确的实体。

关于c# - Azure存储表逐行删除键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37201006/

10-09 12:57