Dapper - 微型 ORM 之王 (C#.NET)
ORM
直接将数据库与 C# 对象映射的对象关係映射器。
有许多可用的 ORM 工具。其中之一是 Dapper。Dapper 被称为 ORM 之王。
以下是 Dapper 的主要功能:
速度快,性能快。
更少的代码行。
对象映射器。
静态对象绑定。
动态对象绑定。
轻松处理 SQL 查询。
易于处理存储过程。
直接对 IDBConnection 类进行操作,该类提供平滑性并直接对数据库运行查询,而不是像我们在 EF 和 Web Page is Unavailable 中那样使用各种对像传递数据。
多查询支持。
支持存储过程。
批量数据插入功能。
Dapper 还允许基于多个输入获取多个数据。
为什么选择Dapper
Dapper 是第二快的 ORM。
直接使用 IDBConnection 对象执行 CRUD 操作。
提供通过数据库查询静态和动态数据。
获取简单或複杂数据类型的通用结果。
Dapper 允许一次存储大量数据。
如何安装Dapper
Dapper 有两种安装方式:
1.DapperMappingFileForC#4.5.cs。
将此 SqlMapperAsync.cs 文件添加到您的项目并开始使用 Dapper 功能。
SqlMapperAsync.cs 取决于你使用的 .Net 框架。
2. NuGet 包管理器。
在 Visual Studio 中,创建一个新的控制台项目,然后在解决方案资源管理器中右键单击引用并选择管理 NuGet 包管理器并蒐索 Dapper 并使用 NuGet 包管理器控制台命令获取 Nugget 包管理器“install-package dapper”,然后这个将 Dapper 安装到你的项目中。
Dapper 的工作原理
“ Dapper 主要包括三个步骤”
步骤1
使用连接字符串创建 IDBConnection 对象。
第2步
编写一个查询并将其存储在一个普通的字符串变量中。
第 3 步
调用 db.execute() 并传递查询就完成了。
我们将在下面的示例中探讨许多其他方法。对于此示例,我有一个名为“ContactDB”的数据库并包含一个名为 Contacts 的表。使用 Dapper 让我们在这个联繫人表上执行 CRUD 操作。
创建一个控制台应用程序并安装 Dapper 并包含 Dapper 的命名空间。
例 1
让我们首先获取所有数据并将其打印到控制台上。
步骤1
创建一个 IDbConnection 类的对象和一个新的 SqlConnection 实例。
SqlServerConnString 是一个连接字符串名称,您可以在控制台应用程序的 app.config 中编写它。
第2步
编写一个查询并将其存储到一个字符串中。
第 3 步
在 db 实例上触发查询并将通用返回类型转换为联繫人列表。
您已经成功地从联繫人表中检索了所有数据,只需使用这三个简单的步骤将这些数据填充到您需要的任何地方。
将整个列表打印到 Windows 窗体或 WPF 的网格视图上,或将整个数据列表传递给任何外部 WCF。
出于演示目的,我将仅将此数据打印到控制台上。
示例 2
现在让我们将数据插入到联繫人表中。这也包括相同的三个步骤。
步骤1
创建 IDbConnection 类的对象和 SqlConnection 的新实例。
第2步
在这裡,我们包括两个查询来获取最后插入的联繫人表 id。
第 3 步
现在在 db 实例上触发查询,对于返回类型,我们将得到一个值,这将是一个 int。因此,将其存储到一个 int 变量中,并通过查询传递联繫人对象,如下所示。
再次在这三个简单的步骤中,数据将被插入到数据库中。
示例 3
现在让我们通过在 where 子句中传递一个 id 从数据库联繫人表中获取单个数据量。
步骤1
创建 IDbConnection 类的对象和 SqlConnection 的新实例。
第2步
第 3 步
现在在 db 实例上触发查询,对于返回类型,我们将得到一个值,这将是一个联繫人。因此,将其存储到联繫人对像中。
同样在这三个简单的步骤中,将使用 id 从数据库中获取数据。
注意:同理我们可以更新和删除数据库的记录。
我们甚至可以使用 db.Execute()。
db.query 和 db.execute 之间的主要区别在于,在 db.query 中,我们得到一个我们想要的返回值,因为它是一个泛型方法,而 db.execute 不是一个泛型方法,所以它总是返回一个 int。
使用高级 Dapper
我们可能需要处理多个表,例如一次查询两个以上的表或根据外键获取数据。
我们可以在 Dapper 中一次访问多个表,这也非常流畅。
传递对象列表,Dapper 本身会将插入识别为批量插入。
根据各种参数获取数据,Dapper 会自动将数组转换为 CSV 并在对象列表中返回所有内容。
示例 4
假设我还有一个要调用的表,如下所示:
我们将使用相同的联繫人 ID 作为联繫人表的主键和地址表的外键,一起对两个表执行 CRUD 操作。
现在让我们通过一个 id 从数据库联繫表和数据库地址表中获取多个数据。
步骤1
为 IDbConnection 类和 SqlConnection 的新实例创建一个对象。
第2步
现在为多个查询创建一个字符串。
第 3 步
现在在 db 实例上触发查询,如下所示:
大功告成,您只需使用三个步骤就成功地从多个表中检索了多条记录。
翻译自:Dapper - King of Micro ORM (C#.NET)
相关.NET项目请登录51aspx.com
Asp.net core 支付宝扫码支付实例源码,交易支付,Asp.net源码|- 51Aspx.com一、源码描述支付宝PC网站支付、扫码支付Demo,实现支付、支付同步回调、支付异步通知、订单查询、退款、退款查询、订单关闭、扫码支付功能。采用支付宝服务端SDK:Alipay.AopSdk.Core二、功能介绍支付宝PC网站支付、扫码支付Demo,实现支付、支付同步回调、支付异步通知、订单查询、退款、退款查询、订单关闭、扫码支付功能。采用支付宝服务端SDK:Alipay.AopSdk.Core三、注意事项1、开发环境为VisualStudio2019,无数据库。http://www.51aspx.com/code/CCASPNETCOREZFBSMDEMO
Dapper - 微型 ORM 之王 (C#.NET)相关推荐
- 视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时 ...
- 【译】微型ORM:PetaPoco
PetaPoco是一款适用于.Net 和Mono的微小.快速.单文件的微型ORM. PetaPoco有以下特色: 微小,没有依赖项--单个的C#文件可以方便的添加到任何项目中. 工作于严格的没有装饰的 ...
- 微型ORM框架----FluentData
FluentData简单介绍和应用 一 介绍 官方介绍 A simple to use Micro ORM with a great fluent API that makes it simple t ...
- .Net开源微型ORM框架测评
什么是ORM? 对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间 ...
- ASP.NET Core 中的 ORM 之 Dapper
Dapper简介 Dapper是.NET的一款轻量级ORM工具(GitHub),也可称为简单对象映射器.在速度方面拥有微型ORM之王的称号. 它是半自动的,也就是说实体类和SQL语句都要自己写,但它提 ...
- 记一次ORM的权衡和取舍
面对ORM的选型,有些人是根据自己熟悉程度来评判,有些人是根据他人的推荐来抉择,有些人觉得都差不多,随便了.当自己要真正做选择的时候,以上的这些依据都无法真正说服自己,因为不同的业务需求,不同的团队构 ...
- Net Core下多种ORM框架特性及性能对比
在.NET Framework下有许多ORM框架,最著名的无外乎是Entity Framework,它拥有悠久的历史以及便捷的语法,在占有率上一路领先.但随着Dapper的出现,它的地位受到了威胁,本 ...
- Dapper实用教程
Dapper是什么? Dpper是一款.Net平台简单(Simple)的对象映射库,并且Dapper拥有着"微型ORM之王"的称号.就速度而言与手写ADO.NET SqlDateR ...
- Asp.Net Core+Dapper开发直播平台!
现在直播大热,从游戏直播到直播带货,这几年都是最热门的了.教育直播.视频会议.云点播等各种基于直播构建的业务模式,让众多企业也都开始配备自己的直播平台.14年在公司带队做了个游戏直播平台,疫情期间在家 ...
最新文章
- DumpMem and Monster - Virtual Memory Explorers on Windows Mobile/CE
- jQuery dataTable 操作个人使用总结
- ADO.NET 2.0 功能一览
- FireEye实验室在一次水坑式攻击中发现IE 0DAY
- 基于Java+SpringBoot+vue+elementui图书商城系统设计实现
- youtube-dl 安装和用法
- SPSS应用多元逻辑回归解决无序多分类问题
- 720vr全景网站平台系统 vr全景图制作系统
- 关于物联网远程控制技术,你了解的有多少?
- 如何租用虚拟服务器,怎么租用虚拟主机
- 非常喜欢微信公众号最近的几个新能力
- 自动颁发证书 AD域策略
- react钩子_了解用户的React钩子
- 七零年代摄影师Robert Mapplethorpe
- PP模块工艺路线明细BAPI
- x58和x79服务器性能,X58接班人:2012年Intel最牛主板X79规格曝光
- 个人草根站长如何靠广告联盟赚钱
- Day4-----subnavMeau
- GATK使用说明-GRCh38(Genome Reference Consortium)(二)
- android 系统数据清理工具下载,Coolmuster Android Cleaner(数据清理软件)
热门文章
- 2022新版云进销存系统ERP销售库存仓库员工管理系统源码
- x小学计算机教案,小学信息技术教案 广西科技出版社
- android音乐播放器的历史,基于Android音乐播放器的研究
- 编译优化之 - 向量化优化入门
- Seaching TreeVIew WPF
- 名悦集团:女司机第一辆车买手动挡还是自动挡?
- 好玩的CMD几个命令
- bzoj 2081: [Poi2010]Beads 哈希
- 荣耀手表es鸿蒙,荣耀手表ES评测:方形大屏+轻盈机身,599元腕上健康全能管家...
- 深度学习实战案例:电影评论二分类