如何更新 Azure Table 存储中的实体?
How do I update an entity in Azure Table Storage?
如何更新 Azure table 中的单个实体?
它只是声明它合并了实体。
如何合并?
哪些属性被覆盖,哪些没有?
是否不更新值为null的实体属性?
是,不是,也许?
根据 HTTP API https://docs.microsoft.com/en-us/rest/api/storageservices/merge-entity:
The Table service does not persist null values for properties.
Specifying a property with a null value is equivalent to omitting that
property in the request. Only properties with non-null values will be
updated by the Merge Entity operation.
假设这也适用于 C# SDK。
要了解 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
操作:
- 存在于原始实体和更新实体中的任何属性都将被更新。
- 原始实体中存在但更新后的实体中不存在的任何属性都将被删除。
- 原始实体中不存在但更新后的实体中存在的任何属性都将被添加。
如何更新 Azure table 中的单个实体?
它只是声明它合并了实体。
如何合并?
哪些属性被覆盖,哪些没有?
是否不更新值为null的实体属性?
是,不是,也许?
根据 HTTP API https://docs.microsoft.com/en-us/rest/api/storageservices/merge-entity:
The Table service does not persist null values for properties. Specifying a property with a null value is equivalent to omitting that property in the request. Only properties with non-null values will be updated by the Merge Entity operation.
假设这也适用于 C# SDK。
要了解 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
操作:
- 存在于原始实体和更新实体中的任何属性都将被更新。
- 原始实体中存在但更新后的实体中不存在的任何属性都将被删除。
- 原始实体中不存在但更新后的实体中存在的任何属性都将被添加。