Dan*_*n H 9 .net connection ado.net transactions
我设计了框架的数据访问部分,以便每次业务对象(BO)需要与数据库交互时,都必须打开连接,调用数据访问层(执行查询),然后关闭连接.然后,如果需要在事务中运行,它将打开连接,开始事务,调用数据访问层(执行查询),然后提交事务,关闭事务,最后关闭连接.
我这样做的方式是"开放晚,早关闭" ...但是如果我需要调用其他BO在单个交易中提交数据怎么办?有没有更好的方法来处理打开和关闭连接以及处理事务?
我是设计应用程序架构的新手,所以我希望我不会错误地做这个......任何帮助都是值得赞赏的.
如果给定的业务对象需要在事务中执行各种方法,请使用TransactionScope如下:
using ( var transactionScope = new TransactionScope() )
{
this.Save();
childObjA.Save();
childObjB.Save();
childObjC.Save();
childObjD.Save();
transactionScope.Complete();
}
Run Code Online (Sandbox Code Playgroud)
如果任何对象抛出异常,它将回滚事务.
有关更多信息,请参阅MSDN参考页面TransactionScope.
| 归档时间: |
|
| 查看次数: |
5771 次 |
| 最近记录: |