2013-03-14 51 views
2

我试图建立一个简单的搜索,我通过关键字列表。但很快我添加了“任何包含关键字”作为一个列表,而不是一个字符串,我得到:“如果任何包含任何”(DbExpressionBinding需要输入)

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

我该如何解决这个问题?

回答

4

我想你想得这个:

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

这将返回任何记录,其中的名字,姓氏,或市是关键字列表。

+0

我的想法确切。隐含的any()在哪里。 – 2013-03-14 14:16:48

相关问题