当既不的TransactionScope和嵌套事务的支持,怎么办?
-
27-09-2019 - |
题
TransactionScope的是一个了不起的功能,但过少的提供者正确地执行它。 我并不想通过连接作为参数。
解决方案
不知道你想在这里使用的TransactionScope达到什么 - 如果想法是有跨方法(和正在进行的事务中简单入伍)的交易auotmatic流动然后通过连接的参数是不是唯一的方式。您可以通过使用当前连接和事务当前 CallContext中(或当前线程中)。把一个简单的静态的包装,如果在当前呼叫上下文存在连接/事务,如果不创建将检查。这是相对于通过参数传递透明的非侵入性的方式。
现在,如果你正在寻找应用程序跨越域边界流动的事务和/或使用多个资源管理器(即使用分布式事务),那么最好的办法是使用的TransactionScope和推出的自己的ResourceManager 。当然,这不是一个简单的事情,但那么有什么要求需要。如果底层系统不提供事务性资源,那么自定义资源管理器可以使用具有的回滚补偿事务(例如,对文件系统的上一个经理可以使用“删除文件夹”作为对“创建文件夹”的原始事务补偿事务)
不隶属于 StackOverflow