使用.NET Core 7更新Azure Cosmos DB NoSQL文档时如何保留_ts字段?
Azure Cosmos DB 部分文档更新对_ts字段的影响
直接给出结论:部分文档更新(Partial Document Update)操作不会修改_ts字段,完全满足你通过_ts跟踪UI端并发的需求,可以放心使用该方式更新容器a中的文档。
关键依据
Azure Cosmos DB官方明确说明:
部分文档更新操作无法修改
_ts、_etag、_rid这类系统生成属性,这些属性由平台统一管理,只有在执行全文档替换操作时才会被更新。
.NET Core 7 代码示例
使用CosmosClient执行部分更新的简化实现:
// 初始化客户端与容器 var cosmosClient = new CosmosClient("你的连接字符串"); var container = cosmosClient.GetContainer("数据库ID", "container-a"); // 定义要更新的字段操作(仅修改业务字段,不涉及系统属性) var patchOperations = new List<PatchOperation> { PatchOperation.Set("/userName", "新用户名"), PatchOperation.Increment("/loginCount", 1) }; // 执行部分更新 var updateResponse = await container.PatchItemAsync<YourDocumentModel>( id: "目标文档ID", partitionKey: new PartitionKey("分区键值"), patchOperations: patchOperations );
内容的提问来源于stack exchange,提问作者JHah
相关产品推荐
相关产品推荐

