Entity framework 并发更新数据的问题
有一套系统,系统中会有很多地方去更新用户的积分,所以存在并发的可能性
以前要做一个更新用户的积分,用如下sql语句能达到
Update user set point=point+100
现在用entityframework
var user = GetUserFromDB();
user.Point += 100;
Save(user);
于是在并发状态下,肯定会有如下情况
1. 线程a和b都在试图更改积分。
2. ab都开始读取这个用户的数据
3. a 首先读取且改变数据
4. b读取的时候a还未改变数据,
5. b提交更改
这样,b把a的更改覆盖了,请问entityframework如何解决这种问题,有类似于update user set point=point +100 这样的用法吗?
数据库层面又怎么实现?要如何用锁,表锁好像效能比较低了