【发布时间】:2012-07-28 04:26:47
【问题描述】:
我正在尝试创建一种搜索方法,我想检查关键字是否包含在给定记录的任意数量的不同列中。
我的Linq语句如下:
string[] searchFilter = {"john", "iceberg"};
var q = from qua in qual
join del in deliverables on qua.ID equals del.Q_ID
where searchFilter.All(s => (qua.Name + " " + qua.Project + " " + qua.Summary + " " + del.Name + " " + del.Summary).ToLower().Contains(s))
select qua;
然而,我收到一条错误消息,其中指出:“本地序列不能用于查询运算符的 LINQ to SQL 实现中,但 Contains() 运算符除外。”
【问题讨论】:
-
那么,问题是什么?例外是不言自明的——您有一个本地序列(读取:内存中),并且您不能在带有 L2S 的 linq-query 中使用它,除非您将它与 Contains() 运算符一起使用。您正在使用 All-operator,因此您不能在查询中使用本地序列。
-
您能否提出解决上述问题的替代方法?谢谢。