客友,郭采妮,本溪红尖
.net平台下兼容.net standard 2.0,一个实现以lambda表达式转转换标准sql语句,支持mysql、sql server数据库方言,使用强类型操作数据的轻量级orm工具,在减少魔法字串同时,通过灵活的lambda表达式组合,实现业务数据查询的多样性。
演示代码:https://github.com/azthinker/sqlrepoex2.0demo
1、重新组织代码结构,以支持sql方言;
2、增加对mysql数据访问支持;
3、增加通过dapper进行数据访问支持;
只需几步,即可实现sqlrepoex与
string connectionstring = "data source=(local);initial catalog=northwind;user id=test;password=test";
var connectionprovider = new mssqlp.connectionstringconnectionprovider(connectionstring);
mssqlrepofactory.useconnectionprovider(connectionprovider);
mssqlrepofactory.usestatementexecutor(new dapperstatementexecutor(connectionprovider));
mssqlrepofactory.usedatareaderentitymapper(new dapperentitymapper());
var repository = mssqlrepofactory.create<customers>();
var result = repository.query().select(e => e.customerid, e => e.companyname, e => e.address).top(10);
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"))的更自然的语法;
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 }
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());
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
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
install-package sqlrepoex.adapter.dapper -version 1.0.1
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
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论