我正在尝试构建一个简单的搜索,我会传递关键字列表。但是,当我添加“任何包含关键字”作为列表而不是字符串时,我得到:
"DbExpressionBinding requires an input expression with a collection ResultType."
我已将IQueryable<Inspector>
扩展为:
public static IQueryable<Inspector> Search(this IQueryable<Inspector> qry, List<string> keywords)
{
return from i in qry
where
i.LastName.Any(x => keywords.Contains(i.LastName)) ||
i.FirstName.Any(x => keywords.Contains(i.FirstName)) ||
i.City.Any(x => keywords.Contains(i.City)) ||
select i;
}
当我打电话给我时,我使用:
return qry.Search(keywords).ToList();
我该如何解决这个问题?
答案 0 :(得分:4)
我认为你正试图解决这个问题:
return from i in qry
where keywords.Contains(i.LastName) ||
keywords.Contains(i.FirstName) ||
keywords.Contains(i.City)
select i;
这将返回您的关键字列表中FirstName,LastName或City所在的任何记录。