Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的。Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快。使用ORM的好处是增、删、改很快,不用自己写sql,因为这都是重复技术含量低的工作,还有就是程序中大量的从数据库中读数据然后创建model,并为model字段赋值。这些ORM都可以轻松给你搞定。ORM给我们开发带来便利时,性能也是一个让我们不得不考虑的问题。一般的ORM性能和直接写原生的sql比都差不少,但是Dapper性能还很错,甚至和DbHelperSQL方式性能高出很多。

Dapper的基本用法

执行

执行一次或多次命令并返回受影响的行数。

存储过程 插入语句 更新语句 删除语句

string sql = "INSERT INTO Customers (CustomerName) Values (@CustomerName);";using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools()))
{var affectedRows = connection.Execute(sql, new {CustomerName = "Mark"});Console.WriteLine(affectedRows);var customer = connection.Query<Customer>("Select * FROM CUSTOMERS WHERE CustomerName = 'Mark'").ToList();FiddleHelper.WriteTable(customer);
}

查询

执行查询并映射结果。

string sql = "SELECT TOP 10 * FROM OrderDetails";using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools()))
{var orderDetails = connection.Query<OrderDetail>(sql).ToList();FiddleHelper.WriteTable(orderDetails);
}

参数

在Dapper 查询中使用参数。

string sql = "INSERT INTO Customers (CustomerName) Values (@CustomerName);";using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools()))
{var affectedRows = connection.Execute(sql, new {CustomerName = "Mark"});Console.WriteLine(affectedRows);var customer = connection.Query<Customer>("Select * FROM CUSTOMERS WHERE CustomerName = 'Mark'").ToList();FiddleHelper.WriteTable(customer);
}

结果

将查询结果映射到不同的类型。

匿名的 强类型 多重映射 多结果 多类型

string sql = "SELECT TOP 10 * FROM OrderDetails";using (var connection = new SqlConnection(FiddleHelper.GetConnectionStringSqlServerW3Schools()))
{   var orderDetails = connection.Query<OrderDetail>(sql).ToList();Console.WriteLine(orderDetails.Count);FiddleHelper.WriteTable(orderDetails);
}

C#的dapper使用相关推荐

  1. .net平台性能很不错的轻型ORM类Dapper(转)

    .net平台性能很不错的轻型ORM类Dapper Posted By : 蓝狐 Updated On : 2016-04-22 23:16 dapper只有一个代码文件,完全开源,你可以放在项目里的任 ...

  2. OSS.Core基于Dapper封装(表达式解析+Emit)仓储层的构思及实现

    最近趁着不忙,在构思一个搭建一个开源的完整项目,至于原因以及整个项目框架后边文章我再说明.既然要起一个完整的项目,那么数据仓储访问就必不可少,这篇文章我主要介绍这个新项目(OSS.Core)中我对仓储 ...

  3. .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现...

    本篇我将带着大家一起来对Dapper进行下封装并实现基本的增删改查.分页操作的同步异步方法的实现(已实现MSSQL,MySql,PgSQL).同时我们再实现一下仓储层的代码生成器,这样的话,我们只需要 ...

  4. 轻量级ORM框架Dapper应用三:使用Dapper实现In操作

    IN 操作符允许我们在 WHERE 子句中规定多个值. 本篇文章中,还是使用和上篇文章中同样的实体类和数据库,Dapper使用in操作符的代码如下: 1 using System; 2 using S ...

  5. ASP.NET Core 实战:基于 Dapper 扩展你的数据访问方法

    ASP.NET Core 实战:基于 Dapper 扩展你的数据访问方法 一.前言 在非静态页面的项目开发中,必定会涉及到对于数据库的访问,最开始呢,我们使用 Ado.Net,通过编写 SQL 帮助类 ...

  6. 以Dapper、Zipkin和LightStep [x]PM为例阐述分布式跟踪的过去、现在和未来

    \ 核心要点 \\ 在观测分布式系统和微服务时,分布式跟踪已经成为一个越来越重要的组件.现在有一些流行的开源标准和框架,比如OpenTracing API和OpenZipkin:\\t 分布式跟踪的基 ...

  7. 给力分享新的ORM = Dapper( 转)

    出处:http://www.cnblogs.com/sunjie9606/archive/2011/09/16/2178897.html 最近一直很痛苦,想选一个好点的ORM来做项目,实在没遇到好的. ...

  8. 1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)...

    1.NetDh框架开始的需求场景 需求场景: 1.之前公司有不同.net项目组,有的项目是用SqlServer做数据库,有的项目是用Oracle,后面也有可能会用到Mysql等,而且要考虑后续扩展成主 ...

  9. .NET Core 使用Dapper 操作MySQL

    MySQL官方驱动:http://www.cnblogs.com/linezero/p/5806814.html .NET Core 使用Dapper 操作MySQL 数据库, .NET Core 使 ...

  10. dapper 注意事项之GUID

    今天把ef框架换成了dapper,数据库使用的是mysql. 主键使用GUID,mysql数据库中设置的为varchar(36). 使用dapper报错,不能将string转换为GUID,后来调试比对 ...

最新文章

  1. 当远程桌面到Windows终端服务器,出现终端服务器超出了最大允许连接数,怎么办...
  2. 如何提升研发人员的非技术才能
  3. Android入门:DDMS视图
  4. windows令牌学习
  5. 王式安概率论与数理统计基础课手写笔记-第一章概率与事件-第二章随机变量及其分布
  6. sun.misc.Unsafe操作手册
  7. 使用git上传代码到github远程仓库
  8. CVE-2018-1000136:Electron nodeIntegration绕过漏洞
  9. python开学吧真假,开学第一课,课课有总结
  10. php+api抖音随机播放视频源码
  11. 像目标主机一样的tcp流重组
  12. 从入门到入土:[SEED-Lab]MD5碰撞试验|MD5collgen实验|linux|Ubuntu|MD5 Collision Attack Lab|详细讲解
  13. JAVA购物管理系统
  14. 遥感资源大放送(下)| 11 个经典遥感数据集
  15. python-onvif库基本使用
  16. XMPP 客户端和服务端
  17. Pack up your loved ones 带上至亲至爱
  18. 经管之家账号被封,显示IP地址不在允许范围内
  19. linux运维之批量升级
  20. bm29 bm30 bm4

热门文章

  1. Android选项切换条SHSegmentControl
  2. SLES修改本地FTP安装源
  3. 定义命令别名(alias)
  4. C#读写txt文件的两种方法介绍
  5. ^_^家园游记^_^
  6. vue1.0和vue2.0生命周期----整理一
  7. 在 Visual Studio 2010 中创建 ASP.Net Web Service
  8. http协议--笔记
  9. Oracle免客户端InstantClient安装使用
  10. 公众平台关注用户达到5万即可开通流量主功能 可以推广APP应用