Я пытаюсь выбрать элементы из таблицы SQLCE, где поле существует в массиве строк.Это легко сделать в SQL:
SELECT *
FROM TableX
WHERE SomeField In
([comma delimited array values]);
Мне трудно перенести это в LINQ.Следующее будет логически работать, но оно получает эту ошибку: LINQ to Entities не распознает метод 'Boolean Contains [String] (System.Collections.Generic.IEnumerable`1 [System.String], System.String)', и этот метод не может быть переведен в выражение магазина.
var result = from c in DB.TableX
where someStringArray.Contains(c.SomeField)
select c;
Пожалуйста, дайте мне знать, если у кого-нибудь есть какие-либо идеи или советы.
Спасибо!
Обновление:
Следующее, рекомендуемое ниже, создает исключение NotSupportedException с сообщением об ошибке, где класс X - это класс, вызывающий перечисление: Невозможно создать постоянное значениевведите «NamespaceX.ClassX».В этом контексте поддерживаются только примитивные типы (такие как Int32, String и Guid) .
var result = from c in DB.TableX
where someStringArray.Any(s => s == c.SomeField)
select c;