Linq 中是否有一种方法可以用来构建 SQL 字符串,例如“...where (a=1) OR (a=2)”?
最佳答案
您当然可以在Where 子句(扩展方法)中执行此操作。不过,如果您需要动态构建复杂的查询,则可以使用 PredicateBuilder .
var query = collection.Where( c => c.A == 1 || c.B == 2 );
或者使用 PredicateBuilder
var predicate = PredicateBuilder.False<Foo>();
predicate = predicate.Or( f => f.A == 1 );
if (allowB)
{
predicate = predicate.Or( f => f.B == 1 );
}
var query = collection.Where( predicate );
关于.net - "Or"等价于 LinqWhere() lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2101540/