Closed
Description
[Fact]
public void Trans()
{
g.oracle.Transaction(()=>
{
g.oracle.Transaction(() =>
{
g.oracle.Insert(new xxx()).ExecuteAffrows();
});
throw new Exception("异常");
});
}
使用FreeSql的Transaction事务做嵌套时,当内层事务提交时,整个事务就被提交了,当嵌套外层的事务发生异常,事务也已经无法回滚,Ado在BeginTransaction开启事务时判断了同线程是否已开启事务,已开启事务的会使用同一事务,但是当CommitTransaction事务提交时,没有对外层是否还有嵌套事务做判断,直接将当前事务提交了。
期望:只有最外层事务提交时,整个事务才提交