开发者社区> 阿笨net> 正文

.NET轻量级ORM组件Dapper修炼手册

简介: 一、摘要 1.1、为什么叫本次的分享课叫《修炼手册》? 阿笨希望本次的分享课中涉及覆盖的一些小技巧、小技能给您带来一些帮助。希望您在日后工作中把它作为一本实际技能手册进行储备,以备不时之需,一旦当手头遇到与Dapper修炼手册中相似用法的地方和场景,可以直接拿来进行翻阅并灵活的运用到项目中。
+关注继续查看

一、摘要

1.1、为什么叫本次的分享课叫《修炼手册》?

阿笨希望本次的分享课中涉及覆盖的一些小技巧、小技能给您带来一些帮助。希望您在日后工作中把它作为一本实际技能手册进行储备,以备不时之需,一旦当手头遇到与Dapper修炼手册中相似用法的地方和场景,可以直接拿来进行翻阅并灵活的运用到项目中。最后阿笨建议您可以根据自己在工作中碰到的不同的使用场景,不断的完善此本修炼手册。

废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。

1240

四、涉及覆盖的知识点

1、C# Linq To Xml技术。

2、Transact-SQL修炼手册。比如如何使用临时表、创建用户自定义表(TABLE)、XML数据字段、ROW_NUMBER分页函数、存储过程修炼手册(动态执行SQL、异常处理机制、事务处理机制)、C#如何获取存储过程的OUTPUT、RETURN参数值。

3、SQL Sever FOR XML技术(XML PATH、XML RAW、XML AUTO简单用法介绍)。

4、Transact-SQL关键字OPENXML操作内存中的 XML 文档。

5、Faker.Net仿照测试数据框架运用。

6、VS单元测试NuitTest运用。

7、Dapper在异步编程(Asyn Task)中的运用。

8、原生Dapper简单的CRUD(增删改查) 修炼手册。(强烈推荐)

9、Dapper如何通过DynamicParameters动态拼接查询SQL修炼手册。(强烈推荐)

10、Dapper扩展库Dapper.SqlBuilder、UniqueNamespace.SqlBuilder修炼手册。(强烈推荐)

11、原生Dapper高级技巧修炼手册。(强烈推荐)

12、Dapper扩展库Dapper-Extensions修炼手册。(强烈推荐)

五、Dapper修炼手册在线学习和演示

5.1、原生Dapper简单的CRUD(增删改查) 修炼手册

Insert、Insert_Batch(批量插入数据)。

Update、Delete、Exist。

GetById、GetList、GetByIds(in子句使用)。

GetListReturnDynamic(返回dynamic)。

GetListByMultiQuery(返回多结果集Tuple)。

ExecuteWithDBTransaction(本地DbTransaction事务操作)。

ExecuteWithTransactionScope(分布式TransactionScope事务操作)。

5.2、Dapper如何通过DynamicParameters动态拼接查询SQL修炼手册

Insert、GetListByGenreIdAndName领略DynamicParameters的风采。

SearchOrdersByPageDynamicParametersSqlBuild:获取分页数据(通过DynamicParameters动态拼接查询SQL方式拼接+ ROW_NUMBER() OVER 子句分页)。

SearchOrdersByDynamicParametersOutPutANDReturnVaule:如何使用DynamicParameters构造和获取存储过程OUTPUT、RETURN参数值,以及获取存储过程返回一个或多个结果集。

5.3、Dapper扩展库Dapper.SqlBuilder修炼手册

通过SqlBuilder构造CRUD语句模板。

通过SqlBuilder内置的模板构造SELECT(查询)、Page(分页)语句模板。

GetOrderOneToManyByDapperSqlBuilder:获取订单"一对多"通过SQL语法 XML PATH子句。

SearchOrdersByPageDapperSqlBuilder:获取分页数据(通过Dapper.SqlBuilder拼接+ ROW_NUMBER() OVER 子句分页)。

SearchOrdersByDapperDapperSqlBuilderSqlPagingTemplates获取分页数据(通过Dapper.SqlBuilder内置提供的分页模板进行分页)。

5.4、原生Dapper高级技巧修炼手册

CreateOrder:创建订单(采用sql拼接+for循环方式)。

CreateOrderByStoredProcedures_XMLPath:创建订单(采用生成XML+SQL XML数据类型的XMLPath方式)。

CreateOrderByStoredProcedures_OpenXml:创建订单(采用生成XML+SQL XML数据类型的OpenXml方式)。

CreateOrderByStoredProcedures_CustomTableType:创建订单(采用SQL用户创建自定义表类型)。

GetOrderOneToManyBySqlBuilder:获取订单(一对多)通过主从表SQL语句方式。

GetOrderOneToManyByDapperQuery:获取订单(一对多)通过原生Dapper Query+splitOn关键字。

SearchOrdersByPageSqlBuild:获取分页数据(通过SQL语句拼接+ ROW_NUMBER() OVER 子句分页)。

SearchOrdersByPageSqlStoredProcedures:获取分页数据(通过SQL分页存储过程+ ROW_NUMBER() OVER 子句分页)。

5.5、Dapper扩展库Dapper-Extensions修炼手册

1、Insert、Insert_Batch(批量插入数据)。

2、Update、Delete、Exist。

3、Insert_BatchBySqlBulkCopy(基于SqlBulkCopy方法进行批量插入数据)。

4、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函数)。

五、源代码在线演示和解读

在线观看地址:跟着阿笨一起玩NET

微信公众号:ABenDotNet


六、小结

在ADO.NET的世界里“海阔凭鱼跃,天高任鸟飞”。

Transact-SQL编程能力再上一个台阶。

领略到了Dapper她的“美”!

学完此本修炼手册后,您将会汲取到满满的干货,让您更加的有底气!

后续计划:阿笨将后续计划给大家带来另外一堂分享课《.NET轻量级ORM组件Dapper实战宝典》,大概包含Dapper For MSQL,Dapper For Mysql、Dapper For Oracle、数据访问层之Repository模式以及基于Dapper开源的仓储模式项目运用,等等。




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基于.net core 开发的轻量级配置中心 - AgileConfig
AgileConfig 是一个基于 .net core 开发的轻量级配置中心,更多的是为了那些分布式、容器化部署的应用能够更加简单的读取、修改配置。秉承轻量化的,部署简单、配置简单、使用简单、学习简单,它只提取了必要的一些功能,并没有像 Apollo 那样复杂且庞大。但是它的功能也已经足够你替换...
168 0
【.NET 6+Loki+Grafana】实现轻量级日志可视化服务功能
日志功能是几乎所有程序或系统都必备的一个功能。该文章通过使用Loki+Grafana来实现日志记录与可视化查询,欢迎围观。
69 0
推荐一个.Net Core轻量级插件架构
一个基于.Net Core的轻量级插件框架,集成非常简单,两行代码完成集成;支持新增Controller,动态路由;热插拔、易扩展、无需数据库。
58 0
从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之七 || API项目整体搭建 6.2 轻量级ORM
代码已上传Github+Gitee,文末有地址   书接上文:《从壹开始前后端分离【 .NET Core2.0 Api + Vue 2.0 + AOP + 分布式】框架之六 || API项目整体搭建 6.1 仓储》,我们简单的对整体项目进行搭建,用到了项目中常见的仓储模式+面向接口编程,核心的一共是六层,当然你也可以根据自己的需求进行扩展,比如我在其他的项目中会用到Common层,当然我们这个项目接下来也会有,或者我还会添加Task层,主要是作为定时项目使用,我之前用的是Task Schedule,基本能满足需求。
1379 0
.NET轻量级ORM框架Dapper入门精通
一、课程介绍 本次分享课程包含两个部分《.NET轻量级ORM框架Dapper修炼手册》和《.NET轻量级ORM框架Dapper葵花宝典》,阿笨将带领大家一起领略轻量级ORM框架Dapper的魅力。
2909 0
.NET开源Protobuf-net组件修炼手册
一、前言 Protocol Buffer(简称Protobuf或PB) 是一个跨平台的消息交互协议,类似xml、json等 ;别只会用Json和XML了,快来看看Google出品的Protocol Buffer!由于是Google的出品,我相信Protocol Buffer已经具备足够的吸引力。
1115 0
.NET开源Protobuf-net组件葵花手册
一、前言 我们都知道 protobuf是由Google开发的一款与平台无关,语言无关,可扩展的序列化结构数据格式,可用做数据存储格式,  通信协议 ! 在前面《.NET开源Protobuf-net组件修炼手册》基础入门课程中我们已经对Google的Protobuf有了一个比较全面的了解和认识,本次高级进修课程主要的侧重点是讲解 Protobuf 通信协议应用。
1171 0
.NET轻量级DBHelpers数据访问组件
一、摘要 一说到ADO.NET大家可能立刻想到的就是增、删、改、查(CRUD)操作,然后再接就想到项目中的SQLHelper。没错本课分享课阿笨给大家带来的是来源于github上开源的DAO数据库访问组件DBHelpers。
1339 0
.NET轻量级ORM组件Dapper葵花宝典
一、摘要 为什么取名叫《葵花宝典》? 从行走江湖的世界角度来讲您可以理解为一本"武功秘籍",站在我们IT编程的世界角度应该叫"开发宝典"。 如果您在工作中主要接触的是操作MySQL数据库,但您又想学习和了解.NET轻量级ORM框架Dapper,那么就请跟着阿笨一起学习本次的分享课《.NET轻量级ORM框架Dapper葵花宝典》。
2071 0
+关注
阿笨net
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
使用TensorFlow搭建智能开发系统自动生成App UI
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多