.net - "Or"等价于 LinqWhere() lambda 表达式

标签 .net linq where-clause

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/

相关文章:

MySQL 多个 Where 子句

c# - 使用 PST/CEST/UTC/等形式的时区解析 DateTime

.net - 如何通过 Tor 发出 httpwebrequest

c# - 为什么var不能应用于成员变量

asp.net - LinqDataSource 和日期时间格式

c# - LINQ 等效于以下代码?

javascript - MVC-Mini-Profiler 错误 : yepnope is not defined

c# - Linq:如何获得倒数第二名

PostgreSQL 慢 DISTINCT WHERE

c# - 如何在 where 子句中使用 LINQ Except()