TransactionScopeOpetion有三个选项,分别是:
1. Required(默认):如果存在环境事务,那么就加入其中,如果不存在就创建新事务。如果加入事务那么只有在环境事务提交后才算提交。
2. RequiresNew:无论什么情况下都创建新的事务。不用等到环境事务提交才进行操作。
3. Suppress:不参与任何事务。
注:虽然嵌套范围可联接根范围的环境事务,但在嵌套范围中调用 Complete 对根范围没有影响。仅当从根范围到最后一个嵌套范围的所有范围都投票决定提交事务时,才会提交该事务。
以下是摘录msdn中的一个说明表格:
TransactionScopeOption | 是否存在环境事务 | 范围参与 |
Required | 否 | 参与新事务(将成为根范围) |
Requires New | 否 | 参与新事务(将成为根范围) |
Suppress | 否 | 不参与任何事务 |
Required | 是 | 参与环境事务 |
Requires New | 是 | 参与新事务(将成为根范围) |
Suppress | 是 | 不参与任何事务 |