钱包应用程序开发的乐观并发

时间:2019-09-21 10:06:59

标签: entity-framework asp.net-core entity-framework-core

我现在正在使用钱包系统,多个用户余额同时更新。但是现在的问题是,当一个用户余额更新时间另一个事务发生的余额无法正确更新时。如果我对实体框架核心中的数据库中的钱包余额列使用乐观并发。问题是否解决

2 个答案:

答案 0 :(得分:0)

我认为这只是为EF的concurrency token所尖叫。

通过数据注释[ConcurrencyCheck]或通过配置Fluent API来配置并发检查余额列。

答案 1 :(得分:0)

我假设您要问的问题是,乐观锁柱的实现是否可以解决同时余额更新问题。答案是否定的,它本身不能解决同时余额更新问题。仅通过乐观的锁定列实现就不会同时进行更新。

仅通过乐观锁实现告诉您您曾尝试同时更改余额,并且它会停止在第一个更改之后进行的更新(只有同时更改中的第一个成功)。 / p>

为了更新余额,您需要编写处理并发冲突的代码,如here所述。基本思想是处理冲突错误并决定要做什么。其中一些选项是询问用户要做什么,或者在处理冲突错误时由您的代码自动决定要做什么。