我正试图在Nested
中测试c#
次交易的行为。所以我创建了两个TransactionScope
个对象。在outerScope
(root)中,我故意插入重复的PK
值,因此它会抛出异常和事务ROLLS BACK
。但后来我创建了一个嵌套TransactionScope
,其中TransactionScopeOption
设置为RequiresNew
,这意味着它将单独执行,并且回滚outerScope将对innerScope
没有影响。但它不会提交innerScope
内部的事务代码,因为它没有到达下一行代码和中断。
所以我向大家提出的问题是,如何测试嵌套事务行为?请告知我必须给出这个概念的演示,我对如何通过代码示例解释这个问题完全无能为力。
以下是代码:
try
{
using (var outerScope = new TransactionScope(TransactionScopeOption.Required, option))
{
using (conn)
{
conn.Open();
method1();
using (var innerScope = new TransactionScope(TransactionScopeOption.RequiresNew, option))
{
method2();
innerScope.Complete();
}
}
outerScope.Complete();
}
}
catch (TransactionAbortedException tex)
{
Console.WriteLine(tex.Message);
}