声明:我已经使用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那样写是不可选的。