我用多种领域(公司名称、邮政编码等)填写表格,使用户可以在数据库中搜寻公司。 如果用户在不止一个领域进入价值,那么我需要寻找所有这些领域。 我正在利用LINQ查询数据库。
迄今为止,我已设法写出一份职能,其中将审视他们的投入,并把它变成一份表述清单。 我现在要把这份名单变成一个单一的表述,然后我可以通过林研中心供应商执行。
我的初步尝试如下:
private Expression<Func<Company, bool>> Combine(IList<Expression<Func<Company, bool>>> expressions)
{
if (expressions.Count == 0)
{
return null;
}
if (expressions.Count == 1)
{
return expressions[0];
}
Expression<Func<Company, bool>> combined = expressions[0];
expressions.Skip(1).ToList().ForEach(expr => combined = Expression.And(combined, expr));
return combined;
}
然而,这只是一个例外的信息,即“双轨操作者,没有为......定义”。 是否有任何想法需要把这些表达结合起来?
EDIT:更正了我忘掉的一条线,把表达结果和表达方式加在一起变成一个变量。 感谢指出这一点。