FreeSql查询之WhereDynamicFilter篇--完整介绍

  • binGe博客
  • C#
  • 2021/9/10 19:44:00
  • 人已阅读
简介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>();

文章评论

评论
  • 消灭零回复
Top