写点什么

C#中如何使用 Dapper

作者:喵叔
  • 2021 年 12 月 18 日
  • 本文字数:864 字

    阅读完需:约 3 分钟

Dapper 是.NET 下轻量级 ORM,和 Entity Framework 或 Nhibnate 不同,它是半自动化的。Dapper 它只有一个代码文件,并且完全开源。我们可以将它放在项目的任何位置来实现数据到对象的 ORM 操作,它具备体积小且速度快的特点。使用 ORM 的好处是增、删、改会很快,不用自己写 sql 语句,并且程序中大量的从数据库中读数据然后创建 model,并为 model 字段赋值,这些 ORM 都可以替我们完成。ORM 给开发带来便利的同时,性能也是一个不得不考虑的问题。一般 ORM 的性能和原生 sql 相比性能都差了不少,但 Dapper 性能还不错,与 DbHelperSQL 相比性能高出很多。

执行

执行一次或多次命令并返回受影响行数。使用在存储过程插入、更新和删除的情况下,代码如下:


string sql = "INSERT INTO user(name) Values (@Name);";using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer())){    //返回受影响的行      var rowCount = connection.Execute(sql, new {Name= "张三"});      Console.WriteLine(rowCount);}
复制代码

查询

执行查询并映射结果,代码如下:


string sql = "SELECT TOP 10 * FROM user";using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer())){   //简单的查询并映射为User类型      var users= connection.Query<User>(sql).ToList();}
复制代码

带参数查询

在 Dapper 查询中使用参数,代码如下:


using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer())){    //带参查询      var customer = connection.Query<Customer>("Select * FROM user WHERE name = @Name", new {Name= "张三"})).ToList();}
复制代码


查询结果映射


将查询结果映射到不同的类型。Dapper 可以实现结果匿名映射、强类型映射、多重映射 多结果映射和多类型映射,代码如下:


string sql = "SELECT TOP 10 * FROM user";using (var connection = new SqlConnection(SqlHelper.GetConnectionStringSqlServer())){   //映射为User      var users= connection.Query<User>(sql).ToList();      Console.WriteLine(users.Count);}
复制代码


用户头像

喵叔

关注

还未添加个人签名 2020.01.14 加入

还未添加个人简介

评论

发布
暂无评论
C#中如何使用Dapper