Dapper就另一个轻量ORM,Dapper及其扩展解决了数据访问端的大部门问题,提供了如数据事务管理、缓存等支持。SqlRepoEx的重点解决了Lambda转换成SQL语句,使SQL使用强类型编写,减少字串错误的,实现编译时检查。

SqlRepoEx同时也实现了数据的映射和访问,因而Dapper并不是SqlRepoEx所必需的,但Dapper中有些如数据事务管理、缓存等功能还是很不错的。使用Dapper需拼接SQL字串,而SqlRepoEx可以生成SQL字串,这种结合,还是很相匹配的。

可以通过两种方式实现SqlRepoEx 与 Dapper 互动。

一、直接用SqlRepoEx 生成Sql语句,然后将此Sql作参给 Dapper就可以了,这种做法可以在利用SqlRepoEx 强大的lambda解析Sql的功能,同时也可完全使用Dapper的功能,如果项目原来使用过Dapper,也不会对原有代码形成任何影响。

二、使用 SqlRepoEx.Adapter.Dapper 库,可不关心 如何使用Dapper, SqlRepoEx.Adapter.Dapper 实现了两个SqlRepoEx的功能类,DapperStatementExecutor,DapperEntityMapper,注册这两个类,然后,就实现了使用Dapper来读写数据。

string ConnectionString = "datasource=127.0.0.1;username=test;password=test;database=sqlrepotest;charset=gb2312;SslMode = none;";

var connectionProvider = new MySQLP.ConnectionStringConnectionProvider(ConnectionString);

MySqlRepoFactory.UseConnectionProvider(connectionProvider);

MySqlRepoFactory.UseStatementExecutor(new DapperStatementExecutor(connectionProvider));

MySqlRepoFactory.UseDataReaderEntityMapper(new DapperEntityMapper());

var repository11 = MySqlRepoFactory.Create<ToDo>();

var results11 = repository11.Query().Select(e => e.Id, e => e.Task, e => e.CreatedDate).Top(6);

foreach (var item in results11.Go())

{Console.WriteLine($"{item.Id}\t {item.Task}\t {item.CreatedDate}\t {item.Remark}");}

本例源码见:

https://gitee.com/azthinker/SqlRepoEx2.0Demo/tree/master/Demos/GettingStartedDapper

https://github.com/AzThinker/SqlRepoEx2.0Demo/tree/master/Demos/GettingStartedDapper

轻量ORM-SqlRepoEx (九)与Dapper共舞的更多相关文章

  1. Dapper.NET——轻量ORM

    Dapper.NET使用 http://www.cnblogs.com/yankliu-vip/p/4182892.html 本文目录 Dapper.NET使用 1.为什么选择Dapper 2.以Da ...

  2. Dapper.NET—轻量ORM

    Dapper.NET使用 本文目录 Dapper.NET使用 1.为什么选择Dapper 2.以Dapper(4.0)为例. 2.1 在数据库中建立几张表. 2.2实体类. 3.使用方法 3.1  一 ...

  3. SqlSugar轻量ORM

      蓝灯软件数据股份有限公司项目,代码开源. SqlSugar是一款轻量级的MSSQL ORM ,除了具有媲美ADO的性能外还具有和EF相似简单易用的语法. 学习列表 0.功能更新 1.SqlSuga ...

  4. C# Dapper 轻量ORM调试对SQLServer

    Dapper简介 Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快. 使用ORM的好处是增.删.改很快,不用自己写sql,因为这都是重复技 ...

  5. 轻量ORM-SqlRepoEx介绍

    轻量级 ORM-SqlRepoEx 介绍 SqlRepoEx是 .Net平台下兼容.NET Standard 2.0人一个轻型的ORM.解决了Lambda转Sql语句这一难题,SqlRepoEx使用的 ...

  6. 轻量型ORM框架Dapper的使用

    在真实的项目开发中,可能有些人比较喜欢写SQL语句,但是对于EF这种ORM框架比较排斥,那么轻量型的Dapper就是一个不错的选择,即让你写sql语句了,有进行了关系对象映射.其实对于EF吧,我说下我 ...

  7. CYQ.Data 轻量数据层之路 优雅V1.4 现世 附API帮助文档(九)

    继上一版本V1.3版本发布到现在,时隔N天了:[V1.3版本开源见:CYQ.Data 轻量数据层之路 华丽V1.3版本 框架开源] N天的时间,根据各路网友的反映及自身的想法,继续修改优化着本框架,力 ...

  8. ORM系列之三:Dapper

    目录 1.Dapper 简介 2.Dapper 安装 3.Dapper 使用 Dapper简介 Dapper是一个轻量级的ORM框架,短小精悍,正如其名.对于小项目,使用EF,NHibernate这样 ...

  9. OWIN轻量型框架介绍

    OWIN轻量型框架介绍 阅读目录 引言 框架的特色 如何启动 各项功能 静态路由的3种写法 伪静态路由的支持 处理Form表单提交的文件 流式处理Post请求的数据 多种请求类型自动识别 响应处理 请 ...

随机推荐

  1. JavaEE之会话技术Cookie&Session

    会话技术简介 存储客户端的状态 由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪         里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并 ...

  2. sql server or Oracle: table MS_Description

    --SQL Server表描述 及 字段描述的增.删.改.查询 --sql server 2000系统表sysproperties在SQL 2008中无效的问题 今天无意中在网上发现Sqlserver ...

  3. Storm Flow

    A Stream represents the core data model in Trident, and can be thought of as a "stream" of ...

  4. jso cpp解析读写数据

    json write : { "array" : [ { "aaaaaa" : "bbbbbb", "number" : ...

  5. IDEA maven 多项目 出现 java 程序包找不到

    使用idea 多项目引入的时候,出现报错信息:Error java程序包找不到 解决办法: 我在引入多个项目的时候,他们是在一个目录里面的.我把整个目录引入了进去.结果报依赖包找不到. 把引入的全部项 ...

  6. 【Leetcode】【Medium】Unique Paths

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...

  7. linux下生成带符号的随机密码

    cat /dev/urandom |tr -dc "[:graph:]"|fold -w 15|head 结果如下:

  8. 设计模式:解释器(Interpreter)模式

    设计模式:解释器(Interpreter)模式 一.前言 这是我们23个设计模式中最后一个设计模式了,大家或许也没想到吧,竟然是编译原理上的编译器,这样说可能不对,因为编译器分为几个部分组成呢,比如词 ...

  9. Docker Toolbox在window 10 home 下挂载宿主机目录到容器的正确操作

    由于我是window 10 home 而不是 pro版本,只能使用Docker Toolbox,其实docker for window对windows的支持更好,还有GUI,home版本安装Docke ...

  10. Geekforgeek week1

    1. is palindrome solution 1: check to reverse the digit, if they are the same number https://www.gee ...