你的位置:首页 > 软件开发 > ASP.net > 搭建一套自己实用的.net架构续 【ORM Dapper+DapperExtensions+Lambda】

搭建一套自己实用的.net架构续 【ORM Dapper+DapperExtensions+Lambda】

发布时间:2016-06-21 15:00:07
前言 继之前发的帖子【ORM-Dapper+DapperExtensions】,对Dapper的扩展代码也进行了改进,同时加入Dapper 对Lambda表达式的支持。由于之前缺乏对Lambda的知识,还是使用了拿来主义。研究了些案例,总归有些问题: ...

      前言

      继之前发的帖子【ORM-Dapper+DapperExtensions】,对Dapper的扩展代码也进行了改进,同时加入Dapper 对Lambda表达式的支持。

由于之前缺乏对Lambda的知识,还是使用了拿来主义。研究了些案例,总归有些问题:

1、只能生成sql、不能将值进行参数化。

2、lambda解析的代码对sql语法的多样式支持不够

3、不开源,反编译后发现可扩展性不强。

最后选择了Dos.ORM(lambda支持的很好,开源的),在这里尊重原创,大家有兴趣去支持下哈。

【作者博客:http://www.cnblogs.com/huxj/    官方网站:http://ITdos.com/Dos/ORM/Index.html   】

 

开始研究Dos.ORM , 最后还是要是使用 Dapper 的, 同时还要基于 DapperExtensions的设计思想。

目的是把Dos.ORm的lambda解析核心代码借鉴过来,然后用Dapper去执行。

想法不错,但是实现起来废了一番周折。

大概改动如下:

1、在DapperExtensions原有接口中扩展lambda方法

2、基于DapperExtensions的缓存机制 ,替换了Dos.ORM 对各个字段的和表结构的映射方式。

3、沿用DapperExtensions 中的定义方言接口进行生成sql的扩展 

4、扩展了若干方法, 同时去除了Dos.ORM的一些特性.

 

这里必须要维护DapperExtensions 对实体类的0入侵的原则。

最后发现想让ORM支持Lambda 的语法更多,最后还是要去扩展实体类。(各有利弊得失……)

 

语法

原标题:搭建一套自己实用的.net架构续 【ORM Dapper+DapperExtensions+Lambda】

关键词:.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。