【发布时间】:2015-02-26 17:03:41
【问题描述】:
我有一个相当复杂的文档修改逻辑。在此逻辑执行期间,此文档被其他调用者修改时会出现问题。因此,当我调用 DocumentSession.SaveChanges 时,我可以放弃其他调用者所做的一些更改。作为解决它的一种方法,我实现了一个补丁脚本。我的问题是 RavenDb 是否保证在执行修补脚本时文档不会被其他调用者修改。那么 RavenDb 内部有没有类似文档修改队列的东西呢?
【问题讨论】:
标签: ravendb
我有一个相当复杂的文档修改逻辑。在此逻辑执行期间,此文档被其他调用者修改时会出现问题。因此,当我调用 DocumentSession.SaveChanges 时,我可以放弃其他调用者所做的一些更改。作为解决它的一种方法,我实现了一个补丁脚本。我的问题是 RavenDb 是否保证在执行修补脚本时文档不会被其他调用者修改。那么 RavenDb 内部有没有类似文档修改队列的东西呢?
【问题讨论】:
标签: ravendb
伊莎,
你可以通过在会话上设置UseOptimisticConcurrency=true; 来解决这个问题,这将导致ConcurrencyException 被抛出。
使用补丁,我们将确保补丁始终在文档的一致视图上运行,并且只有在没有修改的情况下才会应用。如果中途有修改,补丁将重新应用到新版本。
【讨论】: