Linq to Sql Критерии в строковом массиве - PullRequest
0 голосов
/ 03 декабря 2009

У меня есть три таблицы.

Проекты

  • Id
  • Имя

Категория

  • Id
  • Имя

ProjectCategories

  • Id
  • ProjectID
  • CategoryId

Теперь у меня есть массив строк, которые представляют категории, по которым пользователь выбрал поиск. Теперь мне нужно найти все проекты, к которым привязана эта категория.

Я пытался;

string[] searchTerms = new string[2];
searchTerms[0] = "paint";
searchTerms[1] = "painting";

IQueryable<Project> projects = (from category in dc.ProjectCategories
where searchTerms.Any(val => category.Category.Name.Contains(val))
select category.Project).Distinct();

Но я получаю ошибку;

{"Локальная последовательность не может использоваться в реализации операторов запросов LINQ to SQL, кроме оператора Contains ()."}

1 Ответ

1 голос
/ 03 декабря 2009

Если я не ошибаюсь в вашем значении, что возможно, я думаю, вы можете просто сделать содержимое с помощью searchTerms

where searchTerms.Contains( category.Category.Name )

это будет переводиться в SQL как

... WHERE Name IN ('paint','painting') ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...