【发布时间】:2019-02-20 14:31:55
【问题描述】:
如何更新 Azure 表中的单个实体?
它只是声明它合并了实体。
它是如何合并的?
哪些属性会被覆盖,哪些不会?
值为空的实体属性不会更新吗?
是的,不,也许吧?
【问题讨论】:
标签: c# azure azure-table-storage
如何更新 Azure 表中的单个实体?
它只是声明它合并了实体。
它是如何合并的?
哪些属性会被覆盖,哪些不会?
值为空的实体属性不会更新吗?
是的,不,也许吧?
【问题讨论】:
标签: c# azure azure-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操作:
【讨论】:
根据 HTTP API https://docs.microsoft.com/en-us/rest/api/storageservices/merge-entity:
表服务不会为属性保留空值。 指定具有 null 值的属性等同于省略 请求中的属性。只有具有非空值的属性才会 由合并实体操作更新。
假设这也适用于 C# SDK。
【讨论】: