与IDbTransaction相比,使用TransactionScope有什么优点/缺点?我会建议一些 - 请更正/填写清单。
TransactionScope的优点:
TransactionScope的缺点:
答案 0 :(得分:13)
便利性非常重要 - 特别是因为它可用于包装无法控制的代码(因为您自动包装的代码将自动登记,默认情况下)。这意味着您可以包装使用服务器的预先存在的库
性能需要轻微命中,但请注意,在许多情况下,您将使用轻量级事务管理器,而非DTC - 这意味着您不需要支付完整的DTC成本。
另一个缺点是嵌套事务无法回滚; 任何回滚 立即 回滚外部事务。我个人喜欢这种方法;如果事情生病了 - 尽快停止做。
在第3点重新提问;您可以在事务范围内打开/关闭任意数量的连接,而不会影响行为,除了您可能会发现(取决于具体情况)您的事务提升到DTC。如果你与多个知道trnasaction的服务器交谈,它几乎可以保证升级。
另一个区别:不同的超时适用,特别是如果涉及DTC。这是有道理的:长时间运行的分布式事务是有毒的,并且可能表示跨服务器死锁。死锁通常在单服务器上检测到,但在分发时几乎不可能自动发现,因此硬超时至关重要。