基于HTML表单的动态SQL查询-.NetCore和EntityFrameWork

时间:2018-10-08 07:01:32

标签: c# asp.net .net entity-framework

基本上,我有一个包含约20个字段的HTML表单。我根据用户在表单上输入的内容和他未输入的内容创建一个对象,将其设置为null。我想得到与数据库匹配的东西

我目前有一些简单的东西,例如:

IQueryable<Item> query = context.Items;
            if (i.Height!=null)   //i is the item from the HTML form
            {
                query = query.Where(c => c.Height == i.Height);
            }

当前,这给了我所有与用户给定的身高字段匹配的项目。我只需要收集与用户描述匹配的项目,HTML表单上的所有描述

如果没有大量的条件逻辑块,我无法想到实现此目的的方法。我该怎么办?

1 个答案:

答案 0 :(得分:0)

您应该使用表达式树。看一下here。您可以使用以下方式组合表达式以满足您的要求,例如检查空值:

// Create null checker property != null
var nullCheck = Expression.NotEqual(property, Expression.Constant(null, typeof(object)));
// Add null checker in front of the condition using &&
condition = Expression.AndAlso(nullCheck, condition);

condition可能是您的特定条件,例如检查HTML表单数据的每个属性以满足c => c.Height == i.Height之类的要求。

要详细了解Expression Trees,请看here