Отказ от ответственности: я решил проблему с помощью выражений из System.Linq.Expressions, но я все еще ищу лучший / более простой способ.
Рассмотрим следующую ситуацию:
var query =
from c in db.Customers
where (c.ContactFirstName.Contains("BlackListed") ||
c.ContactLastName.Contains("BlackListed") ||
c.Address.Contains("BlackListed"))
select c;
Столбцы / атрибуты, которые необходимо проверить по термину из черного списка, доступны мне только во время выполнения. Как мне сгенерировать это динамическое предложение where?
Дополнительным осложнением является то, что коллекция Queryable (db.Customers выше) типизируется в Queryable базового класса 'Customer' (скажем, 'Person'), и поэтому запись c.Address, как указано выше, не является вариантом.