我正在努力寻找以下情况的工作和最佳解决方案:
- 我在云端编写了WebService,用c#编写;
- 此服务的终点可以随机时间随机调用;
- 在处理请求期间,我们调用我们在DB中的表上读取\ write操作的方法(我简化了流程):
- 我们从表格中读取数据
- 应用一些验证规则
- 并根据特定规则更新一些字段并将数据写回表
- 提交交易
醇>
真正的问题是当我们对一个用户同时有2个或3个请求时 - 当我们从表中读取无效数据时,我们很容易就会遇到这种情况,因为之前的操作还没有保存结果(提交事务)。
- 我尝试设置隔离级别,但这是死锁的原因。
- 在DB级别上使用Upsert操作需要将逻辑移动到存储过程 - 这是不可取的。
所以问题是:正确同步DB工作的最佳方法是什么?感谢您的任何建议。
工具:
实体框架6.0,Azure SQL,Azure