事务操作

本文将介绍事务的使用方法。

示例代码

[HttpGet]
[Route("throwEx.aspx")]
public async Task<int> throwEx()
{
    CustomerBLL bll = this.CreateBLL<CustomerBLL>();

    // 切换到主库
    using( DbContext dbContext = DbConnManager.CreateAppDb("mysqltest") ) {

        // 开启数据库事务
        dbContext.BeginTransaction();

        var args = new { id = 1, addr = "abd" };
        DataTable table = await dbContext.XmlCommand.Create("name111", args).ToDataTableAsync();

        // 提交事务
        dbContext.Commit();
    }
    
    return 100;
}

小结:

  • 调用 BeginTransaction() 显式开启事务
  • 操作结束后,调用 Commit() 提交事务
  • 如果事务不提交,连接关闭时会回滚
  • 不需要写try...catch 实现回滚