这是一篇公司内部研发人员的指导文章,写的并不是很深,其内部的机制讲述很少,完全是实践使用的干货。
引言,数据并发冲突
在一些场景,需要避免并发的产生,比如充值,扣费等,如果产生并发,可能金额增加结果不正确。
简单说下数据库的并发处理:
- 乐观并发:当用户阅读时,行不会被锁定。当用户试图更新这一行时,系统必须确定该记录是否被另一个用户修改过,因为它被读取了。
- 悲观并发: 悲观并发包括锁行,以防止其他用户以影响当前用户的方式修改数据。
1、采用EF的TS 机制 ,实现乐观并发,防止并发操作
在需要处理并发冲突的表内增加 TS 字段
//EF定义DbContext时
entity.Property(e => e.Ts)
.<