我需要在它处理的每个 Web 请求中使我的整个应用程序都具有事务性。
我需要启动事务,如果控制器中没有异常,则提交它。否则,回滚。
到目前为止,我有以下实现:
- 首先,我在控制器上创建事务作为依赖项。
- 然后,我做我的控制器/服务/存储库/其他工作。
- 最后,主要的抽象控制器类执行它的
OnActionExecuted
方法,我要么提交它,要么不提交。
以下是我使用的技术列表:
- MVC 4
- 忍者
- 自动映射器
- 服务模式
现在,我想知道死锁是怎么回事?当同时处理两个 Web 请求时会发生什么,并且他们将获得使用两个存储库(链接到他们的DataContext
实例)的权利,这意味着数据库中的两个表?
例如:一个请求首先要读取 tableTable1
然后Table2
,同时另一个请求想要使用Table2
然后使用Table1
。
我该怎么办?