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状态码。

相关内容

热门资讯

分享辅助!新祥心挂机,三哥玩辅... >>您好:三哥玩辅助器免费下载确实是有挂的,很多玩家在这款三哥玩辅助器免费下载游戏中打牌都会发现很多...
第7分钟辅助!约战沙城挂机辅助... 第7分钟辅助!约战沙城挂机辅助,皮皮辅助(透视软件开挂辅助工具);一、皮皮辅助有挂的是的,亲,有的,...
分析辅助!禅游指尖四川修改器,... 禅游指尖四川修改器开挂教程视频分享装挂详细步骤在当今的网络游戏中,禅游指尖四川修改器作为一种经典的娱...
五分钟辅助!河洛杠次插件,四川... 五分钟辅助!河洛杠次插件,四川游戏家园通用辅助在(透视软件开挂辅助脚本);AI辅助机器人普及解说快速...
教会辅助!指尖四川破解版,兴动... 兴动互娱辅助脚本是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微...
5分钟辅助!竹间智能辅助助手,... 5分钟辅助!竹间智能辅助助手,新518互游辅助(技术分享开挂辅助安装);新518互游辅助软件透视开挂...
第十分钟辅助!aapoker透... 第十分钟辅助!aapoker透视怎么用,福建天天开心技巧(实测发现开挂辅助软件);福建天天开心技巧简...
盘点辅助!吉祥填大坑攻略,家乡... >>您好:家乡大二辅助免费确实是有挂的,很多玩家在这款家乡大二辅助免费游戏中打牌都会发现很多用户的牌...
实测辅助!兴动互娱软件下载,八... 大家好,今天小编来为大家解答八闽掌上十八卦脚本这个问题咨询软件客服可以免费测试直接加微信(13670...
两分钟辅助!神武4辅助脚本,乐... 两分钟辅助!神武4辅助脚本,乐酷副厅辅助(详细说明开挂辅助下载);小薇(透视辅助)致您一封信;亲爱乐...