zoukankan      html  css  js  c++  java
  • .NET轻量级ORM组件Dapper修炼手册

    一、摘要

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

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

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


     

    四、涉及覆盖的知识点

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

    六、小结

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

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

    领略到了Dapper她的“美”!

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

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



  • 相关阅读:
    JZOJ 2548. 【NOIP2011模拟9.4】最大正方形
    JZOJ 3532. 【NOIP2013提高组day1】转圈游戏
    网络流模板 dinic
    1433: [ZJOI2009]假期的宿舍
    JZOJ 1285. 奶酪厂
    JZOJ 1284. 病毒
    SpringMVC路径匹配规则源码
    RESTful设计风格下SpringMVC的URI设计性能问题
    递归查询mysql数据库设计
    java定时任务调度
  • 原文地址:https://www.cnblogs.com/51net/p/7384066.html
Copyright © 2011-2022 走看看