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

相关内容

热门资讯

必备教程!德州局HHpoker... 必备教程!德州局HHpoker透视脚本,aa poker辅助,玩家教你(有挂辅助),支持语音通讯、好...
透视教程"wepok... 1、透视教程"wepoker-h5下载"详细辅助必赢教程(原生是真的有挂)。2、wepoker-h5...
最新技巧!wepoker的辅助... 最新技巧!wepoker的辅助器,来玩app 德州 辅助,高科技教程(有挂技巧);人气非常高,ai更...
透视有挂"wpk透视... 透视有挂"wpk透视辅助方法"详细辅助存在挂教程(本来真的是有挂)是一款可以让一直输的玩家,快速成为...
玩家必备攻略!佛手在线大菠萝技... 玩家必备攻略!佛手在线大菠萝技巧,wepoker线上大神,教你教程(有挂技巧);大神普及一款德州ai...
透视系统"wepok... 透视系统"wepoker透视最简单三个步骤"详细辅助高科技教程(从来真的是有挂)科技教程也叫必备教程...
必看攻略!德扑圈透视,德普之星... 1、必看攻略!德扑圈透视,德普之星透视辅助软件激活码,技巧教程(有挂辅助);详细教程。2、德普之星透...
透视线上"wepok... 透视线上"wepoker-h5下载"详细辅助揭秘教程(都是真的有挂);1.wepoker-h5下载 ...
必看攻略!pokemmo辅助器... 必看攻略!pokemmo辅助器脚本下载,aa poker透视软件,必赢教程(有挂技巧)这是由厦门游乐...
透视有挂"wepok... 自定义wepoker看底牌系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,...