Skip to content

bug:IFreeSql的Transaction事务嵌套时事务提交bug #502

Closed
@835718973

Description

@835718973
        [Fact]
        public void Trans()
        {
            g.oracle.Transaction(()=>
            {
                g.oracle.Transaction(() =>
                {
                    g.oracle.Insert(new xxx()).ExecuteAffrows();
                });
                throw new Exception("异常");
            });
        }

使用FreeSql的Transaction事务做嵌套时,当内层事务提交时,整个事务就被提交了,当嵌套外层的事务发生异常,事务也已经无法回滚,Ado在BeginTransaction开启事务时判断了同线程是否已开启事务,已开启事务的会使用同一事务,但是当CommitTransaction事务提交时,没有对外层是否还有嵌套事务做判断,直接将当前事务提交了。
期望:只有最外层事务提交时,整个事务才提交

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions