c# - 如何更新 Azure 表存储中的实体?
问题描述
如何更新 Azure 表中的单个实体?
它只是声明它合并了实体。
它是如何融合的?
哪些属性被覆盖,哪些没有?
值为空的实体属性不会被更新吗?
是的,不,也许?
解决方案
要了解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
操作:
- 原始实体和更新实体中存在的任何属性都将被更新。
- 任何存在于原始实体中但不在更新实体中的属性都将被删除。
- 将添加原始实体中不存在但更新实体中存在的任何属性。
推荐阅读
- html - 如何使我的动画 gif 的大小更小 (HTML)
- git - 使用来自 passport.js 的 oauth 令牌的 Git 克隆(Github)
- angular - 使用 AGM 在谷歌地图上加载图像
- python - PySimpleGui:在 GUI 中显示控制台输出
- c++ - 派生的公共类不继承受保护的变量
- r - 在 R 中编写一个 for 循环,用相关测试的输出(估计值和置信区间)填充矩阵?
- functional-dependencies - BCNF 中的依赖保持分解
- node.js - 使用 Puppeteer 抓取内联 div 值
- javascript - 使用 react-native-webview 的 stopLoading 后 Webview 冻结
- javascript - 图像未在 Vue-bootstrap 中显示