小编Sat*_*ngh的帖子

如何通过广义方式在Cosmos DB存储过程中处理乐观并发?

我有存储过程,该过程仅基于Etag更新文档。

我已经获取了3种文档,更新了所有3种文档的某些属性。我正在尝试更新存储过程中的所有3个文档。但是在存储过程更新第3个文档之前,另一个用户更新了第3个文档。所以在这种情况下,我确实会出现并发错误。我可以在存储过程中获取文档,但是我不确定必须更新哪个属性,因为我不知道该属性是由我还是由存储过程中的其他用户修改的,因为它只是替换了文档。与文档需要更新的所有地方所使用的存储过程相同,因此我无法对其进行硬编码。

我该如何处理?

在实体框架代码优先方法中,我们确实为SQL 提供了DbUpdateConcurrencyException类,从中我们可以看到哪个属性被修改并采取相应的Action。Cosmos DB中是否提供类似于DbUpdateConcurrencyException的异常类?

我确实读过DocumentDB的第3部分– DocumentDB中的并发DocumentDB –存储过程中的乐观并发,这两篇文章都告诉我们如何使用Etag处理乐观并发。

azure azure-cosmosdb

6
推荐指数
1
解决办法
353
查看次数

标签 统计

azure ×1

azure-cosmosdb ×1