"如果任何包含任何"(dbeexpressionbinding需要输入)

本文关键字:quot dbeexpressionbinding 输入 任何 如果 任何包 | 更新日期: 2023-09-27 18:03:48

我试图建立一个简单的搜索,我传递一个关键字列表。但一旦我添加"any contains keywords"作为列表而不是字符串,我得到:

"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();

我该如何解决这个问题?

"如果任何包含任何"(dbeexpressionbinding需要输入)

我想你是想明白这个:

return from i in qry
    where keywords.Contains(i.LastName) ||
        keywords.Contains(i.FirstName) ||  
        keywords.Contains(i.City)
    select i;

这将返回在关键字列表中包含FirstName, LastName或City的任何记录。