如何更新Azure表中的单个实体?
它只是声明它合并了实体。
它如何合并?
哪些属性被覆盖,哪些不被覆盖?
值为空的实体属性是否不会更新?
是的,不是吗?
答案 0 :(得分:1)
根据HTTP API https://docs.microsoft.com/en-us/rest/api/storageservices/merge-entity:
表服务不保留属性的空值。 指定具有空值的属性等效于省略该属性 请求中的属性。只有具有非空值的属性才会 通过“合并实体”操作进行了更新。
假设这也适用于C#SDK。
答案 1 :(得分:1)
要了解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
操作: