.NET轻量级ORM组件Dapper葵花宝典
一、摘要
为什么取名叫《葵花宝典》?
从行走江湖的世界角度来讲您可以理解为一本"武功秘籍",站在我们IT编程的世界角度应该叫"开发宝典"。
如果您在工作中主要接触的是操作MySQL数据库,但您又想学习和了解.NET轻量级ORM框架Dapper,那么就请跟着阿笨一起学习本次的分享课《.NET轻量级ORM框架Dapper葵花宝典》。Let's Go,Do It ,Dapper For MySQL!
废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。
二、课程适合人群范围
问:Dapper修炼手册和Dapper葵花宝典这两个课程我该如何选择?
答:结合自身需求,选择合适就好。
2.1《.NET轻量级ORM框架Dapper修炼手册》适合人群如下:
1、我是一个新手,主要工作面向的是MS SQL Server数据库,那么选择修炼手册一定没错。
2、对Dapper从没有过了解或者了解不全面的同学,想通过学习进一步提升对Dapper的认识。
3、迫切想提高下ADO.NET实战技术以及Transact-SQL的编写能力。
4、详细关于Dapper修炼手册可以去之前阿笨公布的公开课中查看课程介绍说明。
2.2、《.NET轻量级ORM框架Dapper葵花宝典》适合人群如下:
1、我是一个新手,主要工作面向的是MySQL数据库,那么选择葵花宝典一定没错。
2、在Dapper修炼手册的基础上新增一个Dapper扩展库Dapper.SimpleCRUD。
3、如何运用Dapper操作Mysql数据库以及Dapper如何支持多数据库。
4、学习Dapper在实际项目常用的几种开发架构模式。(简单三层架构模式、工厂模式、Repository架构模式)
5、本次新增Dapper如何操作处理事务以及优雅的方式使用事务。(强烈推荐)
三、环境准备工作
3.1、mysql for windows数据库安装。
3.2、mysql图形化管理工具介绍和使用。
3.3、mysql监控工具安装和基本使用。
3.4、SqlServer测试数据库转换为Mysql数据库。
1)、使用mss2sql工具将SqlServer转换为Mysql。
2)、Navicat for MySQL 数据导入向导功能。(强烈推荐)
备注:数据导入完成后,一定记得需要重新设置建立自增长列、索引字段以及设置字段的数据类型。
3.5、T4模板引擎基本介绍和简单使用。
四、涉及覆盖的知识点
1、.NET程序员对MySQL数据库的基本认识和理解以及使用。
2、如何通过使用.NET轻量级ORM框架Dapper操作MySQL数据库。
3、Faker.Net仿照测试数据框架运用。
4、VS单元测试NuitTest运用。
5、Dapper在异步编程(Asyn Task)中的运用。
6、原生Dapper简单的CRUD(增删改查) 葵花宝典。(强烈推荐)
7、Dapper扩展库Dapper.SimpleCRUD的基本使用。(强烈推荐)
8、Dapper如何通过DynamicParameters动态拼接查询SQL修炼手册。(强烈推荐)
9、Dapper扩展库Dapper.SqlBuilder、UniqueNamespace.SqlBuilder葵花宝典。(强烈推荐)
10、原生Dapper高级技巧葵花宝典。(强烈推荐)
11、Dapper扩展库Dapper-Extensions葵花宝典。(强烈推荐)
4.1、原生Dapper简单的CRUD(增删改查)
Insert、Insert_Batch(批量插入数据)。
Update、Delete、Exist。
GetById、GetList、GetByIds(in子句使用)。
GetListReturnDynamic(返回dynamic)。
GetListByMultiQuery(返回多结果集Tuple)。
ExecuteWithDBTransaction(本地DbTransaction事务操作)。
ExecuteWithTransactionScope(分布式TransactionScope事务操作)。
4.2、Dapper扩展库Dapper.SimpleCRUD的基本使用
Insert、Delete、Exist、Insert_Batch
GetById、GetList
GetListPaged(获取分页数据,通过Dapper.SimpleCRUD自带的RecordCount、GetListPaged函数分别获取总记录数和分页数据。)
4.3、Dapper如何通过DynamicParameters动态拼接查询SQL修炼手册
Insert、GetListByGenreIdAndName领略DynamicParameters的风采。
SearchOrdersByPageDynamicParametersSqlBuild:获取分页数据(通过DynamicParameters动态拼接查询SQL方式拼接+ ROW_NUMBER() OVER 子句分页)。
4.4、Dapper扩展库Dapper.SqlBuilder修炼手册
通过SqlBuilder构造CRUD语句模板。
通过SqlBuilder内置的模板构造SELECT(查询)、Page(分页)语句模板。
SearchOrdersByPageDapperSqlBuilder:获取分页数据(通过Dapper.SqlBuilder拼接+ limit 子句分页)。
SearchOrdersByDapperDapperSqlBuilderSqlPagingTemplates获取分页数据(通过Dapper.SqlBuilder内置提供的分页模板进行分页)。
4.5、原生Dapper高级技巧修炼手册
CreateOrder:创建订单(采用sql拼接+for循环方式)。
GetOrderOneToManyBySqlBuilder:获取订单(一对多)通过主从表SQL语句方式。
GetOrderOneToManyByDapperQuery:获取订单(一对多)通过原生Dapper Query+splitOn关键字。
SearchOrdersByPageSqlBuild:获取分页数据(通过SQL语句拼接+ limit子句分页)。
4.6、Dapper扩展库Dapper-Extensions修炼手册
1、Insert、Insert_Batch(批量插入数据)。
2、Update、Delete、Exist。
3、GetList:包含如下知识点:
*根据条件进行查询(带过滤条件和排序字段)。
*根据多组合条件进行查询(通过IPredicate的Predicates.Group()生成过滤条件+排序字段)。
*根据多组合条件进行查询(通过IPredicate.Add()生成过滤条件+排序字段)。
*根据多组合条件进行查询(通过Predicate多条件复合谓词组合生成过滤条件+排序字段,示例SQL语句:Select * From Table Where(id1=@id1 AND name2=@name2) OR (id2=@id2 AND name2=@name2)。
*根据单条件进行子查询查询(通过IPredicate.EXISTS()子查询过滤条件语句+排序字段,示例语句:Select * Form Table Where Exists(Select 1 From Table Where id=@id))。
*根据多组合条件进行子查询查询(通过IPredicate.EXISTS()子查询过滤条件语句+排序字段,示例语句:Select * From Table Where Exists(Select Count(1) From Table Where(id1=@id1 AND name2=@name2) OR (id2=@id2 AND name2=@name2)))。
*SearchOrdersByPageDapperExtensions:获取分页数据(通过提供的扩展DapperExtensions多条件组合复合谓词IPredicate+内置的Count、Page函数)。
六、小结
1、在ADO.NET的世界里"手册"和"宝典"在手,畅行无阻,横行天下。
2、希望学完此本葵花宝典后,您将会汲取到满满的干货,让您更加的有底气!这样阿笨也会感到一丝丝的欣慰。
3、最后阿笨的愿景:力争通过这两次关于Dapper的分享课后,做到目前.NET方面关于Dapper最全面的教程。为.NET的崛起阿笨做一点绵薄之力吧!
4、问:怎样高效的学习《Dapper修炼手册》和《Dapper葵花宝典》?
答:阿笨给出的建议是,您下载源码后需要针对每一个测试用例进行调试和学习,这样您才能了解和熟练的使用Dapper。
.NET轻量级ORM组件Dapper葵花宝典的更多相关文章
- .NET轻量级ORM组件Dapper修炼手册
一.摘要 1.1.为什么叫本次的分享课叫<修炼手册>? 阿笨希望本次的分享课中涉及覆盖的一些小技巧.小技能给您带来一些帮助.希望您在日后工作中把它作为一本实际技能手册进行储备,以备不时之需 ...
- .NET轻量级ORM框架Dapper入门精通
一.课程介绍 本次分享课程包含两个部分<.NET轻量级ORM框架Dapper修炼手册>和<.NET轻量级ORM框架Dapper葵花宝典>,阿笨将带领大家一起领略轻量级ORM框架 ...
- 轻量级ORM框架Dapper应用一:Dapper安装
一.Dapper简介 Dapper是一款轻量级ORM框架,为解决网站访问流量极高而产生的性能问题而构造,主要通过执行TSQL表达式而实现数据库的CQRS. 如果你在项目中遇到性能访问问题,选择Dapp ...
- .NET 轻量级 ORM 框架 - Dapper 介绍
Dapper简单介绍: Dapper is a single file you can drop in to your project that will extend your IDbConnect ...
- 基于轻量级ORM框架Dapper的扩展说明
这里简单的介绍一下本人基于Dapper作的一些简单的扩展,供大家参考. 为何要使用这款框架,相信大家看到下面排名就清楚了 其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco ...
- 轻量级ORM框架Dapper应用八:使用Dapper实现DTO
一.什么是DTO 先来看看百度百科的解释: 数据传输对象(DTO)(Data Transfer Object),是一种设计模式之间传输数据的软件应用系统.数据传输目标往往是数据访问对象从数据库中检索数 ...
- 轻量级ORM框架Dapper应用六:Dapper支持存储过程
在Entity Framework中讲解了EF如何支持存储过程,同样,Dapper也支持存储过程,只需要在Query()方法的CommandType中标记使用的是存储过程就可以了.在Users表上面创 ...
- 轻量级ORM框架Dapper应用五:使用Dapper实现Join操作
在这篇文章中,讲解如何使用Dapper使用Inner join的操作 1.新创建两张表:Users表和Product表 Users表定义如下: CREATE TABLE [dbo].[Users]( ...
- 轻量级ORM框架Dapper应用四:使用Dapper返回多个结果集
使用Dapper的QueryMultiple方法可以一次执行多条SQL语句,返回多个结果集,代码如下 using System; using System.Collections.Generic; u ...
随机推荐
- 【干货】DD 和 netcat实战---擦除数据和远控
原创:Unit 2: Linux/Unix Acquisition 2.1 Linux/Unix Acquistion Using dd Continued DD也是一个复制设备数据的工具,比特流复制 ...
- Ansible Tower系列 二(安装 Tower)【转】
文档:http://docs.ansible.com/ansible-tower/ 安装前检查 python版本为2.6 保持网络畅通 内存预留充足 安装用户为root 软件下载 下载地址:http: ...
- React-Native 之 Navigator与NavigatorIOS使用
前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...
- java注解方式解析xml格式
注解类和字段方式: @XStreamAlias("message") 别名注解 注解集合: @XStreamImplicit(itemFieldName="part&qu ...
- wpf 千位符 格式化字符串
StringFormat={}{0:N2}}//格式话字符串,增加千位符,2保留小数点后2位 StringFormat={}{0:N0}}//格式话字符串,增加千位符,无小数点后
- XSS绕过学习
目录 1绕过单引号 2绕过 SCRIPT 过滤 3使用 IMG 源 4使用制表符 换行符和回车符 5使用空白符 6双引号配对的 bug 7绕过css过滤器 8不全面的过滤器 9转义字符 10编码 ...
- LOJ 10127 -「一本通 4.3 练习 1」最大数
题面 题目描述 给定一个正整数数列 $a_1, a_2, a_3, \dots , a_n$,每一个数都在 0~p-1之间.可以对这列数进行两种操作: 添加操作:向序列后添加一个数,序列长度变成 n+ ...
- fhq treap 学习笔记
序 今天心血来潮,来学习一下fhq treap(其实原因是本校有个OIer名叫fh,当然不是我) 简介 fhq treap 学名好像是"非旋转式treap及可持久化"...听上去怪 ...
- Java编程的逻辑 (59) - 文件和目录操作
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- Redis学习笔记10--Redis主从复制
redis主从复制配置和使用都非常简单.通过主从复制可以允许多个slave server拥有和master server相同的数据库副本.下面是关于redis主从复制的一些特点: 1.ma ...