Проблема Linq: выражение типа 'System.String []' не является последовательностью - PullRequest
1 голос
/ 15 сентября 2010

Я думал, что добавлю омни-поиск по моим данным.

Поэтому я создал функцию, которая возвращает любое совпадение в строке.

ex.

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 Ответ

3 голосов
/ 15 сентября 2010

Я запустил этот запрос в Linqpad, и он запустился, но не так, как вы хотели.Он не сделал LIKE для каждого поля внутри%, он сделал IN для набора, который совпадал бы только в том случае, если данные точно совпадали.Вы можете просто написать это?

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