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