我在我的MVC应用程序中反复写以下代码,感到很烦恼。
using(var tx = new TransactionScope()){
blah...
tx.Complete()
}
我希望以某种方式使这个代码更DRY。
我想到了几个不同的选项。
1.使用操作过滤器来声明性地标记某些操作为事务性。
2.在控制器基类中重写OnActionExecuting,并一次性使所有操作都具有事务性。
这两个选项中是否有一个好主意?有什么需要注意的地方吗?第二个选项似乎是引起死锁的好方法。
哦,对了,我还使用StructureMap和自定义控制器工厂将依赖项注入到我的控制器中,如果有人知道一些注入事务的技巧,请告诉我。