基于Expression Lambda表达式树的通用复杂动态查询构建器——《剧透一下》
2023/5/30 1:22:11
本文主要是介绍基于Expression Lambda表达式树的通用复杂动态查询构建器——《剧透一下》,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
通常,前后端分离的系统要在前端查询数据是提交一个带着查询条件参数的表单,比如A=1,B=2,类似样,后端接收到表单需要将这些条件参数拼接成查询需要写代码,并且表单结构通常是不带查询逻辑属性的,只能用and来联接这些条件,给查询的灵活性带来了局限。
本框架就是要提供更灵活的,后端不需要写代码的一个查询能力。
其中一个主要的应用场景正是实现实现只需前端传递JSON格式的查询条件到后端,后端无需写查询代码就能进行查询。
其流程如下图所示:
举个例子:
前端提交来的查询JSON:
{ "lg": "", "filters": [ { "lg": "", "Predicates": [ { "lg": "", "Name": "id", "Op": ">", "Value": 1 } ] }, { "lg": "and", "Predicates": [ { "lg": "", "Name": "id", "Op": "<", "Value": 10 } ] }, { "lg": "and", "Predicates": [ {"lg": "","Name": "name", "Op": "=", "Value": "MyName"}, {"lg": "or","Name": "name","Op": "=","Value": "HisName"} ] } ] }
后端只要如下代码就可以了:
Query.Where(QueryFilterBuilder.CreateFilterExpression<Entity>(上面的JSON));
这篇关于基于Expression Lambda表达式树的通用复杂动态查询构建器——《剧透一下》的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-22Java语音识别项目入门教程
- 2024-11-22JAVA云原生入门指南
- 2024-11-22[开源]10.3K+ Star!轻量强大的开源运维平台,超赞!
- 2024-11-21Flutter基础教程:新手入门指南
- 2024-11-21Flutter跨平台教程:新手入门详解
- 2024-11-21Flutter跨平台教程:新手入门与实践指南
- 2024-11-21Flutter列表组件教程:初学者指南
- 2024-11-21Flutter列表组件教程:新手入门指南
- 2024-11-21Flutter入门教程:初学者必看指南
- 2024-11-21Flutter入门教程:从零开始的Flutter开发指南