c# - 创建具有多个 OR 和 AND 条件的 LINQ 表达式树

标签 c# entity-framework linq lambda expression

我想生成具有嵌套 AND 或 OR 条件的 LINQ 表达式树。我有以下表情

    var constant = Expression.Constant("Jhon");
    var property = Expression.Property(paramExpr,"FirstName");
    var expression = Expression.Equal(property, constant);
    constant = Expression.Constant("12");
    property = Expression.Property(paramExpr, "Age");
    var expression2 = Expression.Equal(property, constant);

    expressionMain1 = Expression.AND(expression, expression2);

    constant = Expression.Constant("Mathew");
    property = Expression.Property(paramExpr,"LastName");
    expression = Expression.Equal(property, constant);
    constant = Expression.Constant("19");
    property = Expression.Property(paramExpr, "Age");
    expression2 = Expression.Equal(property, constant);

    expressionMain2 = Expression.And(expression, expression2);

我想要最终的 lambda 查询,例如

(FirstName='John' AND Age='12') OR (LastName='Mathew' AND Age= '19')

最佳答案

这样可以吗?

Expression.OrElse(expressionMain1, expressionMain2)

关于c# - 创建具有多个 OR 和 AND 条件的 LINQ 表达式树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67104659/

相关文章:

c# - 在 C# 中运行 Web 服务时 mongodb 数据丢失

c# - 如何在 SQL Server Management Studio 中优化 Entity Framework 生成的 SQL 查询?

c# - 无法连接到 .mdf 数据库

entity-framework - npgsql - 停止使用 'template1' 数据库

c# - Nest 无法使用 EF6/MVC5 处理大型数据库模型

c# - 在 mongodb 和 Entityframework 中使用相同的 C# Poco 类

c# - 文本更新减慢应用程序

c# - 难以理解特定的 lambda 表达式

c# - 为 Windows 10 UWP 应用程序在桌面上设置窗口大小

javascript - 如何使用 Jquery 绑定(bind)菜单和子菜单应用 css?