我设计了我们框架的数据访问部分,以便每次业务对象(BO)需要与数据库交互时,它都必须打开连接,调用数据访问层(执行查询)然后关闭连接。然后,如果需要在事务中运行,它将打开连接,开始事务,调用数据访问层(执行查询),然后提交事务,关闭事务,最后关闭连接。
我这样做是出于“晚开早关”的心态...但如果我需要调用其他 BOs 在单个事务中提交数据,有没有更好的处理打开和关闭连接以及处理事务的方法?
我是一个新手,在设计应用程序架构方面,所以希望我没有做错...感谢任何帮助。
我这样做是出于“晚开早关”的心态...但如果我需要调用其他 BOs 在单个事务中提交数据,有没有更好的处理打开和关闭连接以及处理事务的方法?
我是一个新手,在设计应用程序架构方面,所以希望我没有做错...感谢任何帮助。
TransactionScope
是此处要使用的类,但根据 OP 目前的设计,它将导致分布式事务或者可能引发异常,如果 MSDTC 被禁用或者受到限制,这很可能不是期望的结果。 - AaronaughtIDbConnection.Close
:_"Close
方法会回滚任何未决的事务。"_ 另一方面,SqlConnection.Close
实现了该接口方法:_"通过System.Transactions
启动的事务由System.Transactions
基础结构控制,并且不受SqlConnection.Close
的影响。"_ 所以,TransactionScope
只适用于SQL Server? - stakx - no longer contributingchildObj.Save()
?这些是针对不同对象(childObjA
、childObjB
等)的调用吗? - stakx - no longer contributing