玉林电信网站备案,wordpress文章时间,高等院校网站建设方案,推广网站大全我们都知道ORM全称叫做Object Relationship Mapper#xff0c;也就是可以用object来map我们的db#xff0c;而且市面上的orm框架有很多#xff0c;其中有一个框架叫做dapper#xff0c;而且被称为the king of ORM。 一#xff1a;为什么选择Dapper 1. 性能优越#xff1a… 我们都知道ORM全称叫做Object Relationship Mapper也就是可以用object来map我们的db而且市面上的orm框架有很多其中有一个框架叫做dapper而且被称为the king of ORM。 一为什么选择Dapper 1. 性能优越 其实在各大网站上我们大概都会看到这样的一个对比效果图在超过500次poco serialization的过程中所表现的性能我们发现dapper是第二名 当然第一名谁也无法超越越底层的当然久越快同时也就越麻烦。就好像谁能超过“01代码”呢 2. 支持多数据库 支持多数据库的本质是因为Dapper是对IDBConnection接口进行了方法扩展比如你看到的SqlMapper.cs一旦你这样做了我们也知道 SqlConnection,MysqlConnection,OracleConnection都是继承于DBConnection而DBConnection又是实现了IDBConnection的接口对吧。。。 二安装Dapper install dapper的方式通常有两种 1. 通过nuget进行安装 如果你不知道怎么用nuget进行安装或者不知道install-package是什么可以在browser上找一下比如下面这样 然后我们copy到package console 试试看。 2. 在github上获取源码。 为什么要获取源码是因为用ilspy调试dapper的源码太费劲了毕竟现在都是异步编程了从ilspy中看都是匿名方法很多都无法渗透废话不多 说我们只要把Dapper文件夹拉出来然后copy到我们的solution就可以了如下图 三快速CURD操作 其实对数据库的操作莫过于CURD,在进行操作之前我们再配一个Users表。 1. 配置Users表 CREATE TABLE [dbo].[Users]( [UserID] [int] IDENTITY(1,1) NOT NULL, [UserName] [varchar](50) NULL, [Email] [varchar](100) NULL, [Address] [varchar](100) NULL, CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED ( [UserID] ASC )WITH (PAD_INDEX OFF, STATISTICS_NORECOMPUTE OFF, IGNORE_DUP_KEY OFF, ALLOW_ROW_LOCKS ON, ALLOW_PAGE_LOCKS ON) ON [PRIMARY] ) ON [PRIMARY] 2. Insert操作 通常来说有两种insert操作 1单条insert操作 这是一个简单的参数化insert而且还可以塞入匿名类型对吧跟原始的SqlParameter相比是不是简单的多 static void Main(string[] args) { IDbConnection connection new SqlConnection(Data Source.;Initial CatalogDataMip;Integrated SecurityTrue;MultipleActiveResultSetsTrue); var result connection.Execute(Insert into Users values (UserName, Email, Address), new { UserName jack, Email 380234234qq.com, Address 上海 }); } 2 InsertBulk操作 既然是Bulk操作那肯定就是批量插入了我们要做的就是将上面这个 ”匿名对象 变成 ”匿名对象集合“ 就可以了。。。为了方便操作这里定义 一个Users类比如下面这样。。。 static void Main(string[] args) { IDbConnection connection new SqlConnection(Data Source.;Initial CatalogDataMip;Integrated SecurityTrue;MultipleActiveResultSetsTrue); //var result connection.Execute(Insert into Users values (UserName, Email, Address), // new { UserName jack, Email 380234234qq.com, Address 上海 }); var usersList Enumerable.Range(0, 10).Select(i new Users() { Email i qq.com, Address 安徽, UserName i jack }); var result connection.Execute(Insert into Users values (UserName, Email, Address),usersList); } 2. Query操作 其实在Dapper在query上提供的的文章太多了。。。这篇我们就按照最简单的参数化查询就好了。。。比如我要找到usernamejack的记录如下 static void Main(string[] args) { IDbConnection connection new SqlConnection(Data Source.;Initial CatalogDataMip;Integrated SecurityTrue;MultipleActiveResultSetsTrue); var query connection.QueryUsers(select * from Users where UserNameUserName, new { UserName jack }); } 图上的亮点就在于能够自动化mapper到我们object上面来这是我们DataReader所不能办到的对吧~~ 3.update操作 这种操作方式我们还是使用Execute方法来实现和insert是一种套路的哦。 4. delete操作 这里我还是采用参数化的形式来删除UserID10这条记录方式如下 最终sql的table展示如下可以看到已经正确的修改了UserID11的记录删除了UserID10的record。。。。当然Dapper好玩的地方多着呢 这篇只是一个入门而已。。。希望本篇对大家有帮助~~~ 相关文章 Net下无敌的Micro ORM — Dapper.NET Core 使用Dapper 操作MySQLDapper、Entity Framework 和混合应用 原文地址http://www.cnblogs.com/huangxincheng/p/5828470.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注