我对在我的 MVC 应用程序中到处编写以下代码感到恼火。
using(var tx = new TransactionScope()){
blah...
tx.Complete()
}
我想以某种方式制作这款 DRYer。
我为此想到了几种不同的选择。
- 一个动作过滤器,以声明方式将某些动作标记为事务性的。
- 重写 Controller 基类中的 OnActionExecuting 并一次性使所有操作都具有事务性。
这些都是一个好主意吗?有什么我应该注意的问题吗?第二个选项似乎可能是获得大量死锁的好方法。
哦,是的,我还使用 StructureMap 和自定义控制器工厂将 deps 注入到我的控制器中,以防有人知道以这种方式注入事务的一些技巧。