共计 973 个字符,预计需要花费 3 分钟才能阅读完成。
这篇文章主要介绍“动态 linq 查询的实现方式是什么”,在日常操作中,相信很多人在动态 linq 查询的实现方式是什么问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”动态 linq 查询的实现方式是什么”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
需求
配合 EasyUI datagird filter 实现多字段 (任意字段) 的筛选
根据业务需求筛选特定的状态或条件, 如: 查看结案的订单, 最近 30 天的订单, 查看属于我的订单. 等等, 这些逻辑是固定也是可以被重用, 但又不想每次写相同的条件, 那么下面我会给我的解决方案.
需求 1 只是一个偷懒的实现方式, 因为 datagrid 自带这个功能, 但又不想根据具体的需求来画查询条件, 如果需求必须要再 datagrid 上面做一块查询条件的输入那目前只能在前端自己手工添加, 在组织后传入后台, 暂时不在这里讨论
需求 2 可能不太好解释, 看完代码就自然理解为什么要这么做了, 这么做的好处有哪些
具体实现的方式
默认情况下 datagrid 有几列就可以对这几列进行筛选, 对于日期型的字段会采用 between, 选择 2 个时间之间进行筛选, 数字类型会提供大于小于等符号选择, 可以自行尝试, 其原理是 datagrid 会根据 datagrid 头部输入的值生成一个 Json 字符串发送后台请求数据
JSON: 格式
filterRules: [{field:field,op:op,value:value},
{field:field,op:op,value:value},
]
通常的做法是一个一个判断加条件
View Code
新的做法是动态根据 field,op,value 生成一个 linq 表达式, 不用再做繁琐的判断, 这块代码也可以被其它项目使用, 非常好用
View Code
配合使用的代码
对于固定查询逻辑的封装和复用, 当然除了复用还可以明显的提高代码的可读性.
查看订单的销售情况, 条件 金额, 国家, 日期
调用查询方法
客户查询 根据国家和城市查询
客户的销售情况, 金额和数量
复用上面的定义的查询方法
到此,关于“动态 linq 查询的实现方式是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!