就我而言,我为每个请求创建一个DataContext
并TransactionScope
. 因此,如果没有异常,我可以捕获异常并回滚事务,或者不回滚事务。
目前,我已经TransactionScope
在我的主根抽象控制器类中声明了一个依赖项,并且事务是在每个请求上自动创建的,然后在该控制器的OnActionExecuted
方法中,我要么提交事务,要么不提交事务。
事实证明,我至少需要一个更早的AuthorizeAttribute
事务创建,当在某些请求中调用 s时似乎是这样,并且它们也使用 DB 连接。
另外,我怀疑必须有比我做的方式更清洁的方式来创建一个请求交易。
1 那么最好的方法是什么,而不是使用像 nhibernate 这样的其他 ORM,在创建请求时为控制器的操作创建事务并在该请求结束时处理它们?
2 有没有办法通过指定 ID 以某种方式拆分我的控制器的操作,以便网络服务器不会同时执行具有相同 ID 的操作?