关于事务的使用方法 返回

SqlSugar 沟通中
5 368
try
    {
        db.Ado.BeginTran();
        db.Insertable(new Order() { .....}).ExecuteCommand();
        db.Insertable(new Order() { .....}).ExecuteCommand();
        db.Ado.CommitTran();
    }
    catch (Exception ex)
    {
        db.Ado.RollbackTran();
        throw ex;
    }

参考5.0的事务使用文档,我的第一个插入成功了,第二插入(红色字体)出现异常,这时候直接进入了catch,还没有对事务进行提交,这时候catch中的回滚是不是就无效了

热忱回答5

  • Falcon Falcon VIP0
    1个月前

    怎么会无效呢?第一个insert应该也会回滚啊。

    0 回复
  • @Falconimage.png

    为什么我的代码,在第一个断点处更新成功后,catch中回滚失败了,回滚之后还是更新之后的值

    0 回复
  • Falcon Falcon VIP0
    1个月前

    @1850的旧巷:个人建议要同步代码都用同步,要不都用异步,混着用容易出事

    0 回复
  • fate sta fate sta VIP0
    1个月前

    用插入测试,更新可能条件没有命中,插入是没有其他逻辑的。

    0 回复
  • 已找到原因,要确保事务中contextId始终一致

    0 回复