当前位置: 移动技术网 > IT编程>开发语言>.net > 轻量ORM-SqlRepoEx (九)与Dapper共舞

轻量ORM-SqlRepoEx (九)与Dapper共舞

2018年10月12日  | 移动技术网IT编程  | 我要评论

用浮想联翩造句,两个老头的爱情,00后开房

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网