Linq问题:'System.String []'类型的表达式不是序列

时间:2010-09-14 21:37:28

标签: c# linq subsonic3

我以为我会对我的数据进行全方位搜索。

所以我创建了一个函数,返回字符串上的任何匹配。

离。

var results = (from d in db.MyData
where new string[]{ d.DataField1.ToString(), d.DataField2.ToString(), ... }.Contains(searchTerm)
select d);

但是当我尝试迭代它时,我得到The expression of type 'System.String[]' is not a sequence.

//blows up on first iteration
foreach(var v in results)
{...}

有人可以给我一些指示吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

我在Linqpad中运行了该查询但它运行了,但不是你想要的。它没有对%s内的每个字段做一个LIKE,它对集合做了一个IN,只有在数据完全匹配时才会匹配。你能写出来吗?

var results = (from d in db.MyData
  where d.DataField1.Contains(searchTerm) || d.DataField2.Contains(searchTerm)
  select d);