使用TransactionScope相比IDbTransaction的优缺点是什么?下面是一些建议,请补充/更正列表。
TransactionScope的优势:
- TransactionScope支持分布式事务 - 您可以在一个事务中访问多个数据源或使用多个连接到一个数据源。
- TransactionScope更加声明式:我们可以嵌套TransactionScopes,在服务层中使用它更加方便(我们不必自己处理IDbConnection和IDbTransaction)。
- 第三点我不确定,但是在这里。IDbTransaction特定于连接 - 您必须在整个事务期间保持连接打开状态。我不确定在整个TransactionScope期间是否应该打开连接/连接(请澄清)。如果没有,可以执行以下工作流程:开始事务,打开连接 - 查询 - 检索 - 关闭连接,执行资源密集型计算(保持连接关闭),打开连接 - 查询 - 检索 - 关闭连接,...,提交事务。但我想TransactionScope不可能保持连接打开直到提交。
TransactionScope的缺点:
- 它不支持在事务期间更改IsolationLevel。