轻量ORM-SqlRepoEx 重大升级
.Net平台下兼容.NET Standard 2.0,一个实现以Lambda表达式转转换标准SQL语句,支持MySQL、SQL Server数据库方言,使用强类型操作数据的轻量级ORM工具,在减少魔法字串同时,通过灵活的Lambda表达式组合,实现业务数据查询的多样性。
演示代码:https://github.com/AzThinker/SqlRepoEx2.0Demo

一、SqlRepoEx升级为2.0,此次升级主要变更为
1、重新组织代码结构,以支持SQL方言;
2、增加对MySQL数据访问支持;
3、增加通过Dapper进行数据访问支持;
只需几步,即可实现SqlRepoEx与
(1)、数据库连接设置
string ConnectionString = "Data Source=(Local);Initial Catalog=Northwind;User ID=test;Password=test";
var connectionProvider = new MsSQLP.ConnectionStringConnectionProvider(ConnectionString);
MsSqlRepoFactory.UseConnectionProvider(connectionProvider);
(2)、注册Dapper解释器
MsSqlRepoFactory.UseStatementExecutor(new DapperStatementExecutor(connectionProvider));
MsSqlRepoFactory.UseDataReaderEntityMapper(new DapperEntityMapper());
(3)、标准SqlRepoEx数据访问
var repository = MsSqlRepoFactory.Create<Customers>();
var result = repository.Query().Select(e => e.CustomerID, e => e.CompanyName, e => e.Address).Top(10);
(4)、支持复杂Lambda语法解析;
SqlRepoEx1.1的where语句只支持单一表达式: Where(c => c.Id == 9),如果使用 Where(c => c.Id == 9 && c.Id == 10 ),则会报错;
SqlRepoEx2.0可以使用:Where(c => c.Id > 0 && c.Id < 30 && c.Remark.Contains("a"))的更自然的语法;
(5)、增加对Union操作支持
SqlRepoEx1.1不支持Union操作;
在SqlRepoEx2.0中可以
var repository = MsSqlRepoFactory.Create<ToDo>();
var results = repository.Query().Select(e => e.Id, e => e.Task);
var results5 = repository.Query().Select(e => e.Id, e => e.Task)
.Where(c => c.Id > && c.Id < );
var results6 = repository.Query()
.Select(e => e.Id, e => e.Task)
.Where(c => c.Id > && c.Id < );
var results2 = results.Union(new List<UnionSql> {
UnionSql.New( results5,UnionType.Union ),
UnionSql.New( results6,UnionType.Union ) });
foreach (var item in results2)
{
Console.WriteLine($"{item.Id}\t {item.Task} ");
}
(6)、增强Join语法
var repository = MsSqlRepoFactory.Create<ToDo>();
var results1 = repository.Query()
.InnerJoin<TaskRemark>()
// 增加附加条件,如果主选择有此属性,则查询本句中所设置
.On<TaskRemark>((r, l) => r.Task == l.Task, l => l.Remark);
Console.WriteLine(results1.Sql());
二、可通过Nuget获得
(一)、MS SQL SqlServer
1、使用 Autofac 时
Install-Package SqlRepoEx.MsSql.Autofac -Version 2.0.1
2、Asp.Net Core
Install-Package SqlRepoEx.MsSql.ServiceCollection -Version 2.0.1
3、手动实例时
Install-Package SqlRepoEx.MsSql.Static -Version 2.0.1
(二)、MySQL
1、使用 Autofac 时
Install-Package SqlRepoEx.MySql.Autofac -Version 2.0.1
2、Asp.Net Core
Install-Package SqlRepoEx.MySql.ServiceCollection -Version 2.0.1
3、手动实例时
Install-Package SqlRepoEx.MySql.Static -Version 2.0.1
(三)、支持Dapper
Install-Package SqlRepoEx.Adapter.Dapper -Version 1.0.1
(四)、通用SQL
Install-Package SqlRepoEx.Normal -Version 2.0.1
(五)、案例源码
https://github.com/AzThinker/SqlRepoEx2.0Demo
如使用中有任何问题,请告知
1、通过评论;
2、可通过电邮 azthinker@sina.com;
3、有兴趣的请在QQ群中参与讨论、联系作者 QQ群名称:ATK高效开发 ,QQ群号:747049962
轻量ORM-SqlRepoEx 重大升级的更多相关文章
- SqlSugar轻量ORM
蓝灯软件数据股份有限公司项目,代码开源. SqlSugar是一款轻量级的MSSQL ORM ,除了具有媲美ADO的性能外还具有和EF相似简单易用的语法. 学习列表 0.功能更新 1.SqlSuga ...
- Dapper.NET——轻量ORM
Dapper.NET使用 http://www.cnblogs.com/yankliu-vip/p/4182892.html 本文目录 Dapper.NET使用 1.为什么选择Dapper 2.以Da ...
- Dapper.NET—轻量ORM
Dapper.NET使用 本文目录 Dapper.NET使用 1.为什么选择Dapper 2.以Dapper(4.0)为例. 2.1 在数据库中建立几张表. 2.2实体类. 3.使用方法 3.1 一 ...
- C# Dapper 轻量ORM调试对SQLServer
Dapper简介 Dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快. 使用ORM的好处是增.删.改很快,不用自己写sql,因为这都是重复技 ...
- 轻量ORM-SqlRepoEx (九)与Dapper共舞
Dapper就另一个轻量ORM,Dapper及其扩展解决了数据访问端的大部门问题,提供了如数据事务管理.缓存等支持.SqlRepoEx的重点解决了Lambda转换成SQL语句,使SQL使用强类型编写, ...
- 轻量型ORM框架Dapper的使用
在真实的项目开发中,可能有些人比较喜欢写SQL语句,但是对于EF这种ORM框架比较排斥,那么轻量型的Dapper就是一个不错的选择,即让你写sql语句了,有进行了关系对象映射.其实对于EF吧,我说下我 ...
- 轻量ORM-SqlRepoEx介绍
轻量级 ORM-SqlRepoEx 介绍 SqlRepoEx是 .Net平台下兼容.NET Standard 2.0人一个轻型的ORM.解决了Lambda转Sql语句这一难题,SqlRepoEx使用的 ...
- OWIN轻量型框架介绍
OWIN轻量型框架介绍 阅读目录 引言 框架的特色 如何启动 各项功能 静态路由的3种写法 伪静态路由的支持 处理Form表单提交的文件 流式处理Post请求的数据 多种请求类型自动识别 响应处理 请 ...
- CYQ.Data 轻量数据层之路 优雅V1.4 现世 附API帮助文档(九)
继上一版本V1.3版本发布到现在,时隔N天了:[V1.3版本开源见:CYQ.Data 轻量数据层之路 华丽V1.3版本 框架开源] N天的时间,根据各路网友的反映及自身的想法,继续修改优化着本框架,力 ...
- 免费申请使用IBM Cloud Lite(轻量套餐) 续
之前尝试申请了IBM的轻量套餐,过程很简单,操作起来也比较方便,就是能够用到的地方不多,虽说几乎是无限流量且永久免费,我能做的也只是做个小网站 免费用户默认的是轻量应用服务,如果需要功能更多更全的应用 ...
随机推荐
- Js常用的设计模式(1)——单例模式
<Practical Common Lisp>的作者 Peter Seibel 曾说,如果你需要一种模式,那一定是哪里出了问题.他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通 ...
- 深入理解JavaScript系列(24):JavaScript与DOM(下)
介绍 上一章我们介绍了JavaScript的基本内容和DOM对象的各个方面,包括如何访问node节点.本章我们将讲解如何通过DOM操作元素并且讨论浏览器事件模型. 本文参考:http://net.tu ...
- [转]NLog学习笔记二:深入学习
本文转自:http://www.cnblogs.com/CCHUncle/p/5207735.html 配置文件 NLog所有的配置信息都可以写到一个单独的xml文件中,也可以在程序代码中进行配置. ...
- Java网络编程二
向web站点发送get post请求,并从web站点取得响应 通相应的set方法,在调用connect()方法前,可以设置请求的各种参数,实现同浏览器类似的访问,调用connect()后可以调用相应的 ...
- 绘图和数据可视化工具包——matplotlib
一.Matplotlib介绍 Matplotlib是一个强大的Python**绘图**和**数据可视化**的工具包. # 安装方法 pip install matplotlib # 引用方法 impo ...
- 阿里云 linux 系统的架构
简单说,/lib是内核级的,/usr/lib是系统级的,/usr/local/lib是用户级的. /lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件.目录 /usr/lib ...
- less自动编译 VScode 开发工具配置
1.首先在vscode商店下载EasyLess插件,安装 2.在VS Code项目中,有一个.vscode的文件夹,找里面的settings.json文件(或者在文件-首选项-设置-搜索setting ...
- SQL获取本周,上周,本月,上月的开始时间和结束时间
),),--本周 ),),--上周 ),),--本月 ),),--上月 ),),--近半年 ),)--近一年 ), ,, ),)--本周开始时间 ), ,, ),)--本周结束时间 ),,, ),)- ...
- May 12th 2017 Week 19th Friday
Love asks faith, and faith asks firmness. 爱情要求忠诚,而忠诚要求坚贞. Love, as well as many other relations amon ...
- Java程序员面试题集2
51.类ExampleA 继承Exception,类ExampleB 继承ExampleA. 有如下代码片断: try{ throw new ExampleB("b") }catc ...