AzureCosmosDb:通过Freshreaditem获取到文档,但是用ReplaceItemAsync()恢复时出现404错误。
创始人
2024-09-29 14:30:10
0

出现此问题的原因是Fresh read item读取的文档ETag与ReplaceItemAsync恢复时提供的ETag不一致。解决此问题的方法是在Fresh read item中使用AccessCondition参数,并将AccessCondition的IfMatch属性设置为读取的文档的ETag。这样,在调用ReplaceItemAsync之前,如果文档的ETag已经发生了更改,则操作将引发异常。

以下是一个示例代码:

// Fresh read item
var readItem = await cosmosContainer.ReadItemAsync(id: "item-id", partitionKey: new PartitionKey("my-partition-key"));

// Create a new item with the same id and partition key
var newItem = new MyItem { Id = readItem.Id, PartitionKey = readItem.PartitionKey, ... };

// Update the item
var accessCondition = new AccessCondition { Type = AccessConditionType.IfMatch, Condition = readItem.ETag };
var replaceResponse = await cosmosContainer.ReplaceItemAsync(newItem, id: readItem.Id, partitionKey: new PartitionKey("my-partition-key"), accessCondition: accessCondition);

在这个示例中,我们首先使用Fresh read item方法从Cosmos DB中读取文档。然后,我们创建一个新的文档,其中包含我们要对原始文档进行的更改。接着,我们使用AccessCondition参数在调用ReplaceItemAsync之前检查读取文档的ETag是否与新文档中包含的ETag匹配。如果匹配,则使用ReplaceItemAsync方法更新文档。否则,将引发异常并返回404状态码。

相关内容

热门资讯

透视讲解!微乐小程序黑科技,微... 透视讲解!微乐小程序黑科技,微乐小程序有脚本吗(透视)原来是有挂(哔哩哔哩)1、玩家可以在微乐小程序...
五分钟辅助!微乐小程序黑科技,... 五分钟辅助!微乐小程序黑科技,微乐家乡脚本助手(开挂)竟然真的有挂(2026)1、实时微乐小程序黑科...
9分钟安装!微乐小程序免费黑科... 9分钟安装!微乐小程序免费黑科技,微乐小程序免费黑科技下载方法(开挂)好像有挂(2026)微乐小程序...
透视挂!微乐小程序黑科技,微乐... 透视挂!微乐小程序黑科技,微乐小程序黑科技辅助工具2026最新推荐(透视)切实是有挂(哔哩哔哩)1)...
第8分钟辅助!微乐小程序黑科技... 第8分钟辅助!微乐小程序黑科技,陕西微乐挖坑控制器(开挂)果然真的有挂(2026)一、微乐小程序黑科...
辅助透视!微乐小程序免费黑科技... 辅助透视!微乐小程序免费黑科技,陕西微乐小程序攻略(透视)确实真的是有挂(哔哩哔哩)1、微乐小程序免...
第9分钟下载!微乐小程序黑科技... 第9分钟下载!微乐小程序黑科技,微乐小程序黑科技辅助工具2026最新推荐(开挂)一直是有挂(2026...
透视安装!微乐小程序免费黑科技... 透视安装!微乐小程序免费黑科技,微乐智能插件激活码(透视)切实有挂(哔哩哔哩)1)微乐小程序免费黑科...
第九分钟工具!微乐小程序黑科技... 第九分钟工具!微乐小程序黑科技,微信小程序微乐安徽辅助器(开挂)其实是有挂(2026)1、这是跨平台...
2026版规律!微乐小程序免费... 2026版规律!微乐小程序免费黑科技,小程序跑得快的技巧(透视)好像是有挂(哔哩哔哩)在进入微乐小程...