SupCube

  • 主页
  • 随笔
所有文章 友链 关于我

SupCube

  • 主页
  • 随笔

Dapper事物操作

2019-06-30 阅读量4425

Dapper是一种轻量级的ORM框架,具有高效便捷等特点所以很受广大开发者的厚爱。特别是他的自动映射功能小编真的爱不释手。
但是之前开发项目大都是简单操作最近在开发过程中需要用到同时操作一些列sql命令。因此“事物”成了救命稻草。
总结代码如下:

public class Test
{
    /// <summary>
    /// 提供数据库连接
    /// </summary>
    /// <returns></returns>
    public static IDbConnection GetConnection()
    {
        return new SqlConnection("server=....;database=...;uid=...;pwd=...");
    }
    /// <summary>
    /// 测试事物接口
    /// </summary>
    /// <returns></returns>
    public bool FuncTest()
    {
        //第一条sql
        string sql1 = "select max(id) from table1";
        //第二条命令
        string sql2 = "xxxxxxxxx";
        using (IDbConnection conn = GetConnection())
        {
            conn.Open();
            IDbTransaction transaction = conn.BeginTransaction();
            try
            {
                conn.ExecuteScalar<int>(sql1, null, transaction);
                conn.ExecuteScalar<int>(sql2, null, transaction);
                //提交前就可以事物提交多个操作
                transaction.Commit();
                return true;
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                return false;
            }
        }
    }    
}

总结如下:
1.启用事物前打开链接;
2.依次执行多个操作;
3.执行之后要提交;
4.失败之后要回滚;
5.使用事物要谨慎因为会对表加锁影响吞吐量;

赏

谢谢你请我吃糖果

支付宝
微信

扫一扫,分享到微信

微信分享二维码
C# Lock 字符串
C#扩展方法
京公网安备11011102002544 © 京ICP备2024068849号-1
智汇魔方:http://www.supcube.com
  • 所有文章
  • 友链
  • 关于我
  • 切水果
  • json格式化
  • 自动分组
  • 集合差集