TransactionScope的是一个了不起的功能,但过少的提供者正确地执行它。 我并不想通过连接作为参数。

有帮助吗?

解决方案

不知道你想在这里使用的TransactionScope达到什么 - 如果想法是有跨方法(和正在进行的事务中简单入伍)的交易auotmatic流动然后通过连接的参数是不是唯一的方式。您可以通过使用当前连接和事务当前 CallContext中(或当前线程中)。把一个简单的静态的包装,如果在当前呼叫上下文存在连接/事务,如果不创建将检查。这是相对于通过参数传递透明的非侵入性的方式。

现在,如果你正在寻找应用程序跨越域边界流动的事务和/或使用多个资源管理器(即使用分布式事务),那么最好的办法是使用的TransactionScope和推出的自己的ResourceManager 。当然,这不是一个简单的事情,但那么有什么要求需要。如果底层系统不提供事务性资源,那么自定义资源管理器可以使用具有的回滚补偿事务(例如,对文件系统的上一个经理可以使用“删除文件夹”作为对“创建文件夹”的原始事务补偿事务)

其他提示

也许你正在寻找系统患病

基本上,每个事务是日志(交易的详细信息被保存),并且如果该应用程序崩溃和重新启动你可以拿起您离开的地方或回滚基于该日志的状态的变化。

下面是对快照模式,可以帮助您实现系统流行的链接。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top