【发布时间】:2011-03-17 09:28:55
【问题描述】:
与 IDbTransaction 相比,使用 TransactionScope 有哪些优点/缺点?我会建议一些 - 请更正/完成列表。
TransactionScope的优势:
- TransactionScope 支持分布式事务 - 您可以访问多个数据源或在一个事务中使用多个连接到一个数据源。
- TransactionScope 更具声明性:我们可以嵌套 TransactionScopes,使用它的服务层更愉快(我们不必自己处理 IDbConnection 和 IDbTransaction)。
- 我不确定第三点,但就是这样。 IDbTransaction 特定于连接 - 您必须在整个事务期间保持连接打开。我不确定是否应该在整个 TransactionScope 期间打开连接/连接(请澄清)。如果没有,以下工作流程是可能的:开始事务,打开连接 - 查询 - 检索 - 关闭连接,执行资源密集型计算(保持连接关闭),打开连接 - 查询 - 检索 - 关闭连接,...,提交事务。但我想 TransactionScope 不可能在提交之前保持连接打开。
TransactionScope 的缺点:
- 它不支持在事务期间更改 IsolationLevel。
【问题讨论】:
标签: .net database transactions transactionscope