zoukankan      html  css  js  c++  java
  • ASP .Net Core 使用 Dapper 轻型ORM框架

    ASP .Net Core 使用 Dapper 轻型ORM框架

    【快速入门ORM框架之Dapper】大牛勿进系列

    看了好多,先做个笔记吧

     这个就好像是和之前用的写数据库的SqlConnectioin链接字符串,然后增删改成的那一套,增加的是去执行的时候加入对象,便于去Dapper去映射

    Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。

    也就是说实体类都要自己写。它没有复杂的配置文件,一个单文件就可以了。给出官方地址。

    http://code.google.com/p/dapper-dot-net/

    Dapper是一个轻型的ORM类。代码就一个SqlMapper.cs文件,主要是IDbConnection的扩展方法,编译后就40K的一个很小的dll。主要特性为:

    1. 使用Dapper可以自动进行对象映射
    2. 轻量级,单文件。
    3. 支持多数据库。
    4. Dapper原理通过Emit反射IDataReader(数据读取器)的序列队列,来快速的得到和产生对象。
    5. 由于Dapper ORM的操作实际上是对IDbConnection类的扩展,所有的方法都是该类的扩展方法。所以在使用前先实例化一个IDBConnection对象 
    6. Dapper支持net2.0,3.0,3.5,4.0。
    7. Dapper语法十分简单。并且无须迁就数据库的设计。

    首先是通过NuGet 安装下Dapper这个组建,然后再声名下IDbconnection 这个接口,这样一来这两者就关联起来了。

    IDbConnection conn = new SqlConnection(connString);
    Book book = new Book();
     book.Name="C#本质论";
     string query = "INSERT INTO Book(Name)VALUES(@name)";
    //第一种对对对象操作  对对象进行操作
     conn.Execute(query, book);//是不是因为他是有自动进行对象映射的功能,然后就要加个对象类型
    //第二种是都name 进行操作直接赋值操作
     conn.Execute(query, new {name = "C#本质论"});

     Update 

    string query = "UPDATE Book SET  Name=@name WHERE id =@id";
    conn.Execute(query, book);//这个就是对对象进行操作
    //也可以对字段进行操作
    conn.Excute(query,new {name='zxxx',id='45'})

     delete

    string query = "DELETE FROM Book WHERE id = @id";
    conn.Execute(query, book);// 这个是传过来的一个book的对象,book对象就包含id,这样就去映射到这个对象的id 从而进行删除
    conn.Execute(query, new { id = id });

     query

    string query = "SELECT * FROM Book";
    //无参数查询,返回列表,带参数查询和之前的参数赋值法相同。
     conn.Query<Book>(query).ToList();
    
     //返回单条信息
     string query = "SELECT * FROM Book WHERE id = @id";
     book = conn.Query<Book>(query, new { id = id }).SingleOrDefault();  

     事物

    using (conn)
    {
    //开始事务
    IDbTransaction transaction = conn.BeginTransaction();
      try
      {
        string query = "DELETE FROM Book WHERE id = @id";
        string query2 = "DELETE FROM BookReview WHERE BookId = @BookId";
        conn.Execute(query2, new { BookId = id }, transaction, null, null);
        conn.Execute(query, new { id = id }, transaction, null, null);
        //提交事务
        transaction.Commit();
      }
      catch (Exception ex)
      {
        //出现异常,事务Rollback
        transaction.Rollback();
        throw new Exception(ex.Message);
      }
    }
    

      

  • 相关阅读:
    Openstack CloudKitty 计量计费命令行操作
    $out表单提交转成数组
    AddWhere
    正则
    全选反选
    showErr()
    模拟登陆
    MYSQL添加权限
    三元相位符
    打开ci 调试
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/11987275.html
Copyright © 2011-2022 走看看