使用EF来进行查询的一种方式
2013-12-09 12:01 杰出的世界 阅读(571) 评论(0) 编辑 收藏 举报目前,做查询的时候,一般都是定义一个类,属性为查询条件。提交到对应的action后,判断对应的属性是否为空,为空,则用LINQ来组合条件。
但是这么处理,所使用的IF过多,代码的可读性就差了。
另外的一个思路是,首先定义一个class:
key表示对应实体的名称,value表示对应的值,ext表示表达式。
查询类定义如下,为了简单,只有两个属性:
主要是在给属性赋值的时候,判断对应的值是不是为空,如果不为空,则添加到对应的list中。
查询的时候,根据这个list,就可以得到所有非空的查询条件。ext为表达式,可以用LINQ支持的所有的函数。
再去查询的时候,就简单了。少了if的判断。
这种方法的不足:
1、对应的值都为string,需要改进
2、默认的条件为and,如果需要or的话,需要额外来处理
使用了微软的动态查询的一个文件,Dynamic.cs