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