TransactionScope的优点和缺点是什么?

时间:2010-06-21 06:56:17

标签: c# .net transactions transactionscope

C#中TransactionScope类的优点和缺点是什么?

感谢。

3 个答案:

答案 0 :(得分:4)

MSDN的一些优点:

TransactionScope的好处

  • 交易中的代码 范围不仅仅是交易性的,它 也是可以促进的。交易 从LTM开始 System.Transactions将推广它 根据要求,根据性质 它与资源的互动 或远程对象。
  • 范围独立于 应用程序对象模型 - 任何一块 代码可以使用TransactionScope和 因此成为交易。有 不需要特殊的基类或 属性。
  • 无需募集资源 明确地与交易。任何 System.Transactions资源管理器 将检测环境事务 由范围和。创建 自动登记。
  • 总的来说,它简单直观 编程模型甚至更多 涉及的复杂情景 交易流程和嵌套。

答案 1 :(得分:2)

好的一面:

可以在数据库上下文之外执行事务。将记录插入db。将文件写入磁盘。

不好的一面:

在使用TransactionScope的客户端计算机上需要MSDTC访问权限。

答案 2 :(得分:0)

只是添加/澄清隐身所做的点:

  • TransactionScopes使ACID事务的实现变得简单(即,您不需要编写显式的“回滚”或清理代码)
  • TransactionScope可以在事务
  • 下协调数据库,消息队列和事务文件系统等资源
  • Re TransactionScopes非常直观 - 诸如SQL等资源将自动/无缝地检测环境事务并登记为可用。

唯一的“坏”方面是你需要意识到:

  • TransactionScope的默认隔离级别是READ SERIALIZABLE,它通常太“强”并且可能导致阻塞和死锁。建议在大多数交易中使用ReadCommitted。
  • 如果在TransactionScope中使用多个数据库/多个并发连接/多个资源(例如SQL和MSMQ),TransactionScope会将事务升级到DTC。但是,通常可以在单线程/单数据库方案中避免在打开新连接之前关闭连接(或保持一个连接始终打开,这是不推荐的)。