zoukankan      html  css  js  c++  java
  • 轻量级ORM框架 第一篇:Dapper

    为什么选择Dapper,性能优越,各大网站的对比图,在超过500次poco serialization的过程中所表现的性能,Dapper是第二名

    支持多数据库的本质是因为Dapper是对IDBConnection接口进行了方法扩展,比如你看到的SqlMapper.cs,一旦你这样做了,我们也知道,

    SqlConnection,MysqlConnection,OracleConnection都是继承于DBConnection,而DBConnection又是实现了IDBConnection的接口

    1.安装 Dapper

    (1)打开NuGet添加引用Dapper,并安装

    (2).如果不知道NuGet,就找到这个地址,cop下来复制到 程序包管理控制台

    创建 table

    CREATE TABLE [dbo].[Users](
        [UserID] [int] IDENTITY(1,1) NOT NULL,
        [UserName] [varchar](50) NULL,
        [Email] [varchar](100) NULL,
        [Address] [varchar](100) NULL,
     CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED 
    (
        [UserID] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]

    2.单条insert

    IDbConnection connection = new SqlConnection("Data Source=.;Initial Catalog=DapperTest;Integrated Security=True;MultipleActiveResultSets=True");
                 var result = connection.Execute("Insert into Users values(@UserName,@Email,@Address)", new { UserName="jack",Email="123456@qq.com",Address="北京"});
    

    3.批量

    var userlist = Enumerable.Range(0, 10).Select(i => new Users()
                {
                    Email = i + "QQ",
                    UserName = i + "jack",
                    Address = "asdf" + i
                });
          var result2 = connection.Execute("Insert into Users values(@UserName,@Email,@Address)", userlist);
    

    4.查询

     IDbConnection connection = new SqlConnection("Data Source=.;Initial Catalog=DapperTest;Integrated Security=True;MultipleActiveResultSets=True");
    var query = connection.Query<Users>("select * from Users where UserName=@UserName",new { UserName="jack"});
    

    5.删除

      IDbConnection connection = new SqlConnection("Data Source=.;Initial Catalog=DapperTest;Integrated Security=True;MultipleActiveResultSets=True");
      var delete = connection.Execute("delete Users where  UserID=@UserId ", new { UserID = 11 });
    

    6.修改

     IDbConnection connection = new SqlConnection("Data Source=.;Initial Catalog=DapperTest;Integrated Security=True;MultipleActiveResultSets=True");
     var updatelist = connection.Execute("update Users set Email=@Email  where UserID=@UserID", new { Email= "assadasdasd163.com",@UserId=6});
    

      

  • 相关阅读:
    ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
    JavaScript 的 if else 和 switch对比
    setTimeout 、 promise、async await 的执行顺序?宏任务、微任务,分别包含哪些?
    mac终端,自定义命令提示符。zsh导致PS1变量序列字符失效!!!
    js基础——错误处理
    Nginx | CentOS 8 安装Nginx详细教程
    Vue | 虚拟DOM
    Vue | 双向数据绑定
    Hexo | 超详细的hexo+githhub page搭建过程
    JavaScript | 彻底搞懂JS闭包
  • 原文地址:https://www.cnblogs.com/BabyRui/p/10214808.html
Copyright © 2011-2022 走看看