ORM

直接将数据库与 C# 对象映射的对象关係映射器。

有许多可用的 ORM 工具。其中之一是 Dapper。Dapper 被称为 ORM 之王。

以下是 Dapper 的主要功能:

  1. 速度快,性能快。

  2. 更少的代码行。

  3. 对象映射器。

  4. 静态对象绑定。

  5. 动态对象绑定。

  6. 轻松处理 SQL 查询。

  7. 易于处理存储过程。

  8. 直接对 IDBConnection 类进行操作,该类提供平滑性并直接对数据库运行查询,而不是像我们在 EF 和 Web Page is Unavailable 中那样使用各种对像传递数据。

  9. 多查询支持。

  10. 支持存储过程。

  11. 批量数据插入功能。

  12. 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)相关推荐

  1. 视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时 ...

  2. 【译】微型ORM:PetaPoco

    PetaPoco是一款适用于.Net 和Mono的微小.快速.单文件的微型ORM. PetaPoco有以下特色: 微小,没有依赖项--单个的C#文件可以方便的添加到任何项目中. 工作于严格的没有装饰的 ...

  3. 微型ORM框架----FluentData

    FluentData简单介绍和应用 一 介绍 官方介绍 A simple to use Micro ORM with a great fluent API that makes it simple t ...

  4. .Net开源微型ORM框架测评

    什么是ORM? 对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间 ...

  5. ASP.NET Core 中的 ORM 之 Dapper

    Dapper简介 Dapper是.NET的一款轻量级ORM工具(GitHub),也可称为简单对象映射器.在速度方面拥有微型ORM之王的称号. 它是半自动的,也就是说实体类和SQL语句都要自己写,但它提 ...

  6. 记一次ORM的权衡和取舍

    面对ORM的选型,有些人是根据自己熟悉程度来评判,有些人是根据他人的推荐来抉择,有些人觉得都差不多,随便了.当自己要真正做选择的时候,以上的这些依据都无法真正说服自己,因为不同的业务需求,不同的团队构 ...

  7. Net Core下多种ORM框架特性及性能对比

    在.NET Framework下有许多ORM框架,最著名的无外乎是Entity Framework,它拥有悠久的历史以及便捷的语法,在占有率上一路领先.但随着Dapper的出现,它的地位受到了威胁,本 ...

  8. Dapper实用教程

    Dapper是什么? Dpper是一款.Net平台简单(Simple)的对象映射库,并且Dapper拥有着"微型ORM之王"的称号.就速度而言与手写ADO.NET SqlDateR ...

  9. Asp.Net Core+Dapper开发直播平台!

    现在直播大热,从游戏直播到直播带货,这几年都是最热门的了.教育直播.视频会议.云点播等各种基于直播构建的业务模式,让众多企业也都开始配备自己的直播平台.14年在公司带队做了个游戏直播平台,疫情期间在家 ...

最新文章

  1. DumpMem and Monster - Virtual Memory Explorers on Windows Mobile/CE
  2. jQuery dataTable 操作个人使用总结
  3. ADO.NET 2.0 功能一览
  4. FireEye实验室在一次水坑式攻击中发现IE 0DAY
  5. 基于Java+SpringBoot+vue+elementui图书商城系统设计实现
  6. youtube-dl 安装和用法
  7. SPSS应用多元逻辑回归解决无序多分类问题
  8. 720vr全景网站平台系统 vr全景图制作系统
  9. 关于物联网远程控制技术,你了解的有多少?
  10. 如何租用虚拟服务器,怎么租用虚拟主机
  11. 非常喜欢微信公众号最近的几个新能力
  12. 自动颁发证书 AD域策略
  13. react钩子_了解用户的React钩子
  14. 七零年代摄影师Robert Mapplethorpe
  15. PP模块工艺路线明细BAPI
  16. x58和x79服务器性能,X58接班人:2012年Intel最牛主板X79规格曝光
  17. 个人草根站长如何靠广告联盟赚钱
  18. Day4-----subnavMeau
  19. GATK使用说明-GRCh38(Genome Reference Consortium)(二)
  20. android 系统数据清理工具下载,Coolmuster Android Cleaner(数据清理软件)

热门文章

  1. 2022新版云进销存系统ERP销售库存仓库员工管理系统源码
  2. x小学计算机教案,小学信息技术教案   广西科技出版社
  3. android音乐播放器的历史,基于Android音乐播放器的研究
  4. 编译优化之 - 向量化优化入门
  5. Seaching TreeVIew WPF
  6. 名悦集团:女司机第一辆车买手动挡还是自动挡?
  7. 好玩的CMD几个命令
  8. bzoj 2081: [Poi2010]Beads 哈希
  9. 荣耀手表es鸿蒙,荣耀手表ES评测:方形大屏+轻盈机身,599元腕上健康全能管家...
  10. 深度学习实战案例:电影评论二分类