FreeSql查询之WhereDynamicFilter篇--完整介绍
- C#
- 2021-9-10 19:44:34
- 人已阅读
简介Operator类型,自己查FreeSql字典:https://github.com/dotnetcore/FreeSql
前端:一般参数组装
//组装查询参数 setQueryParams(query){ var filters = []; filters.push({Field:'Site',Value:query.Site,Operator:'Contains'}); filters.push({Field:'Bg',Value:query.Bg,Operator:'Contains'}); filters.push({Field:'Function',Value:query.Function,Operator:'Contains'}); filters.push({Field:'Project',Value:query.Project,Operator:'Contains'}); //filters.push({Field:'Date',Value:query.Site,Operator:'Equals'}); filters.push({Field:'Line',Value:query.Line,Operator:'Contains'}); var dynamicParams = { 'Logic':'And', 'Filters': filters }; return JSON.stringify(dynamicParams); },
请求参数:
{ "Logic": "And", "Filters": [ { "Logic": "Or", "Filters": [ { "Field": "UserNo", "Value": "", "Operator": "Contains" }, { "Field": "UserName", "Value": "", "Operator": "Contains" } ] } ] }
前端请求2:当有2个参数同时匹配1个字段时
//组装查询参数 setQueryParams(query){ var filters = []; filters.push({Field:'UserNo',Value:query.user,Operator:'Contains'}); filters.push({Field:'UserName',Value:query.user,Operator:'Contains'}); var dynamicParams = { 'Logic':'And', 'Filters': [{ 'Logic':'Or', 'Filters':filters }] }; return JSON.stringify(dynamicParams); },
请求参数:
{ "Logic": "And", "Filters": [ { "Field": "Site", "Value": "", "Operator": "Contains" }, { "Field": "Bg", "Value": "", "Operator": "Contains" }, { "Field": "Function", "Value": "", "Operator": "Contains" }, { "Field": "Project", "Value": "", "Operator": "Contains" }, { "Field": "Line", "Value": "", "Operator": "Contains" } ] }
后端简单一句代码即可:
var query = GetRequestValue("query");// DynamicFilterInfo dyfilter = JsonHelper.DeserializeObject<DynamicFilterInfo>(query); var list = FreeSql.Select<PBI>().WhereDynamicFilter(dyfilter).OrderByDescending(e => e.OpDate).ToList<PbiExcelDto>();
上一篇:Func简单的缓存委托方法
下一篇:C#实现单例模式的几种方法
文章评论
- 消灭零回复