基本上,我有一个包含约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表单上的所有描述
如果没有大量的条件逻辑块,我无法想到实现此目的的方法。我该怎么办?
答案 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。