免責事項: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)が「Customer」(たとえば「Person」)の基本クラスのQueryableに入力されるため、上記のようにc.Addressを書き込むことはオプションではないことです。