.net-core - 如何克隆 DocumentDB 文档?
问题描述
我正在尝试在 C# 中创建一个实用程序,用于更新id
Cosmos DB 文档中字段的值。
为此,我的攻击计划是:
- 从数据库中读取现有文档作为通用文档
Microsoft.Azure.Documents.Document
- 将现有文档克隆到新文档中
id
根据我的喜好更新新文档中的- 在数据库中创建新文档
- 删除旧文档
我遇到的问题是我不知道如何克隆Microsoft.Azure.Documents.Document
. 我现有的代码显然只是创建一个副本:
var existingDocument = new Document(); // Pretend this is coming from database and is an actual document.
var newDocument = existingDocument; // Need to clone object... how?
newDocument.Id = $"{docType}_{docId}";
newDocument.SetPropertyValue("_rid", null);
newDocument.SetPropertyValue("_self", null);
newDocument.SetPropertyValue("_etag", null);
newDocument.SetPropertyValue("_attachments", null);
newDocument.SetPropertyValue("_ts", null);
我怎样才能创建一个克隆,Microsoft.Azure.Documents.Document
以便newDocument
不仅仅是对 的引用existingDocument
?
解决方案
我的“攻击计划”是错误的……我没有必要尝试克隆Document
对象来更新id
字段。我可以简单地ReplaceDocumentAsync()
使用DocumentClient
. 呃。
await _docClient.ReplaceDocumentAsync(existingDocument, options);
推荐阅读
- java - 实例变量和局部变量
- swift - UITextField Shwoing时如何移动tableView单元格
- spring-boot - 如何将 Spring Boot 与 NonStop SQL 等商业 RDMS 连接起来?
- javascript - 在javascript中,如何将十进制(带小数点)转换为十六进制字符串
- mysql - 分层查询将中级类别分类为顶级
- java - 有没有办法从 html 文件调用 java 文件中的 java 方法?
- ios - webview 内容未更新
- javascript - 在 receiveMessage 中调用时,FCM 推送通知不会更新视图
- deep-learning - 激活函数的导数是否必须在 [0,1] 范围内?
- javascript - 返回二叉树中从根到节点的路径