轻量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表达式转转上,支持复杂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中可以
1 var repository = mssqlrepofactory.create<todo>(); 2 var results = repository.query().select(e => e.id, e => e.task); 3 var results5 = repository.query().select(e => e.id, e => e.task) 4 .where(c => c.id > 0 && c.id < 7); 5 var results6 = repository.query() 6 .select(e => e.id, e => e.task) 7 .where(c => c.id > 10 && c.id < 15); 8 var results2 = results.union(new list<unionsql> { 9 unionsql.new( results5,uniontype.union ), 10 unionsql.new( results6,uniontype.union ) }); 11 foreach (var item in results2) 12 { 13 console.writeline($"{item.id}\t {item.task} "); 14 }
(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 (七)AspNetCore应用
-
轻量ORM-SqlRepoEx (四)INSERT、UPDATE、DELETE 语句
-
轻量ORM-SqlRepoEx (十)SqlRepoEx Nuget包下载说明
-
轻量ORM-SqlRepoEx (九)与Dapper共舞
-
轻量ORM-SqlRepoEx (五) 存储过程操作
-
轻量ORM-SqlRepoEx (十二)SqlRepoEx 2.0.1 至 2.2.0 版本更新说明
-
轻量ORM-SqlRepoEx (十一)扩展
-
轻量ORM-SqlRepoEx (六) JOIN
-
轻量ORM-SqlRepoEx 重大升级
-
轻量ORM-SqlRepoEx (十四)最佳实践之Dapper(1)