波斯马BOSSMA Information Technology

ModelQuery – 灵活安全高效的数据查询方式

发布时间:2015年6月28日 / 分类:DataBase, DOTNET / 29,292 次浏览 / 评论

关系数据操作有很多方式,微软的Entitiy Framework,又或者NHibernate,还有其它各种数不胜数的ORM框架,为什么还会有ModelQuery?造轮子的理由千千万,大部分都是从某些立场开始,或者从个性化的需求,ModelQuery也是根据自身开发需求量身定做:灵活、安全、高效,可以灵活处理各种查询,可以保证数据操作安全,开发效率和程序运行效率都要高。

ModelQuery 通过定义一个查询类及其属性实现对特定业务数据的查询操作。

 

1、每个属性代表一个查询条件,属性的值可以是一个单一的数据,也可以是一组数据:

UserName属性的值是一个单一的数据,表示UserName=value的查询条件。

MutliStatus属性的值是一个int数组,表示Status in (value1,value2,…)的查询条件。

2、每个查询条件可以定义查询比较的方式(等于、不等于、包含、不包含等),并在赋值时初始化:

请查看1中的属性赋值部分: CompareType = CompareType.In ,CompareType定义如下:

3、查询条件之间的关系(如And、Or等)由相关的属性定义,并在赋值时初始化:

请查看1中的属性赋值部分:LinkType = LinkType.And,LinkType定义如下:

4、可以对同一个数据字段定义不同的查询条件(也就是属性),方便在不同的需求下使用:

NoUserName属性针对UserName字段,表示UserName<>value的查询条件。

5、最终根据查询类的实例生成参数化的查询条件和参数数组,提交给数据库操作类执行:

6、以上这些定义完毕,来看看怎么使用:

方便安全高效,再也不用担心拼SQL的烦扰了。

但是实际情况中一条记录往往都有很多的查询条件,如果一个个定义岂不是累尿了。

目前有很多的代码生成方案可以帮我们解决这些问题,这里提供一个解决方案:使用基于数据表的动软代码生成器的自定义模板功能生成模型类、模型查询类、数据操作类,然后使用起来就像上边一样so easy了。模板已经放到/Demo/Template目录下,可以根据自己的需要修改,模板语言使用C#编码风格,好用又easy。

项目源码地址:https://github.com/bosima/DbUtility,赶紧来试试吧。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯马,原文地址《ModelQuery – 灵活安全高效的数据查询方式

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

发表评论