通常,前后端分离的系统要在前端查询数据是提交一个带着查询条件参数的表单,比如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"}
]
}
]
}
文章来源地址https://www.toymoban.com/news/detail-463604.html
后端只要如下代码就可以了:
Query.Where(QueryFilterBuilder.CreateFilterExpression<Entity>(上面的JSON));
文章来源:https://www.toymoban.com/news/detail-463604.html
到了这里,关于基于Expression Lambda表达式树的通用复杂动态查询构建器——《剧透一下》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!