轻量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的轻量套餐,过程很简单,操作起来也比较方便,就是能够用到的地方不多,虽说几乎是无限流量且永久免费,我能做的也只是做个小网站 免费用户默认的是轻量应用服务,如果需要功能更多更全的应用 ...
随机推荐
- 白话SpringCloud | 第五章:服务容错保护(Hystrix)
前言 前一章节,我们知道了如何利用RestTemplate+Ribbon和Feign的方式进行服务的调用.在微服务架构中,一个服务可能会调用很多的其他微服务应用,虽然做了多集群部署,但可能还会存在诸如 ...
- git提交代码报错 trailing whitespace的解决方法
1. git提交代码报错 trailing whitespace 禁止执行pre-commit脚本 进入到项目目录中 chmod a-x .git/hooks/pre-commit 2.git提交代码 ...
- select操作大全
每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了. 比如<select class="selector"></select&g ...
- SpringSecurity 3.2入门(1)框架介绍
关于Spring Security Spring Security,这是一种基于Spring AOP和Servlet过滤器 [7] 的安全框架.它提供全面的安全性解决方案,同时在 Web 请求级和方法 ...
- 【学习笔记】关于DOM4J:使用DOM4J解析XML文档
一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org. ...
- 编程进阶:Java小白的序列化Serializable接口
在之前的学习过程中,我们知道了如何使用FileInputStream输入流和FileOutputStream输出流编写程序读写文件. 下面我们来学习一下如何使用序列化和反序列化读写文件. 一.序列化 ...
- struts2返回结果类型
在action下还有result标签 1.result不只有name,其实还有type result返回类型在struts-default.xml默认的配置文件中有定义,可以看到有result-typ ...
- ssh整合(spring + struts2 + hibernate)xml版
1.1分层 1.2jar节点 <dependencies> <dependency> <groupId>junit</groupId> <arti ...
- mysql五:pymysql模块
一.介绍 之前都是通过MySQ自带的命令行客户端工具Mysql来操作数据库,那如何在Python程序中操作数据库呢?这就需要用到pymysql模块了. 这个模块本质就是一个套接字客户端软件,使用前需要 ...
- CSS基础语法与选择器
CSS基础 语法 : <head> <style type="text/css"> 选择器(即修饰对象){ 修饰属性:属性值; 修饰属性:属性值; } &l ...