首页 > 解决方案 > 如何更新 Azure 表存储中的实体?

问题描述

如何更新 Azure 表中的单个实体?

阅读:https ://docs.microsoft.com/en-us/dotnet/api/microsoft.windowsazure.storage.table.tableoperation.merge?view=azure-dotnet

它只是声明它合并了实体。

它是如何融合的?

哪些属性被覆盖,哪些没有?

值为空的实体属性不会被更新吗?

是的,不,也许?

标签: c#azureazure-table-storage

解决方案


要了解Merge操作的工作原理,请考虑此示例。

假设您有一个如下实体:

PartitionKey: "PK"

RowKey: "RK"

Attribute1: "Value 1"

Attribute2: "Value 2"

现在您要更新该实体。您所做的是更改 的值Attribute1并添加一个新属性Attribute3

PartitionKey: "PK"

RowKey: "RK"

Attribute1: "Value 1 (Updated)"

Attribute3: "Value 3"

使用 更新实体Merge后,生成的实体将是:

PartitionKey: "PK"

RowKey: "RK"

Attribute1: "Value 1 (Updated)"

Attribute2: "Value 2"

Attribute3: "Value 3"

总结一下Merge操作:

  • 原始实体和更新实体中存在的任何属性都将被更新。
  • 原始实体中存在但更新实体中不存在的任何属性都不会更改。
  • 将添加原始实体中不存在但更新实体中存在的任何属性。

请注意,还有Replace Entity用更新的实体替换原始实体的操作。因此,对于相同的示例,如果您使用操作更新实体Replace Entity,则生成的实体将是:

PartitionKey: "PK"

RowKey: "RK"

Attribute1: "Value 1 (Updated)"

Attribute3: "Value 3"

总结一下Replace操作:

  • 原始实体和更新实体中存在的任何属性都将被更新。
  • 任何存在于原始实体中但不在更新实体中的属性都将被删除。
  • 将添加原始实体中不存在但更新实体中存在的任何属性。

推荐阅读