C# 回滚嵌套事务
我试图测试C# 回滚嵌套事务,c#,transactions,C#,Transactions,我试图测试c中嵌套的事务的行为。因此,我创建了两个TransactionScope对象。在outerScope(root)中,我故意插入了重复的PK值,因此它抛出异常,事务回滚。但是,我创建了一个嵌套的TransactionScope,将TransactionScope选项设置为RequiresNew,这意味着它将单独执行,并且回滚外部范围不会对内部范围产生影响。但它不会提交innerScope中的事务代码,因为它不会到达下一行代码并中断 所以我要问大家的问题是,我如何测试嵌套事务行为?请建议,
c
中嵌套的事务的行为。因此,我创建了两个TransactionScope
对象。在outerScope
(root)中,我故意插入了重复的PK
值,因此它抛出异常,事务回滚。但是,我创建了一个嵌套的TransactionScope
,将TransactionScope选项设置为RequiresNew
,这意味着它将单独执行,并且回滚外部范围不会对内部范围产生影响。但它不会提交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);
}