【问题标题】:Linq Dynamic Query Issue - Operator 'OR' incompatible with operand types 'Boolean' and 'String'Linq 动态查询问题 - 运算符“或”与操作数类型“布尔”和“字符串”不兼容
【发布时间】:2017-11-19 16:13:21
【问题描述】:

我目前正在尝试在 Linq 中定义动态查询,但收到以下错误:

我的查询如下:

valuesList = valuesList.Where("(position=1 OR value LIKE '%3%')")

我做错了什么?

【问题讨论】:

    标签: c# linq dynamic-linq


    【解决方案1】:

    试试这个-
    您不能在 linq 语句中传递字符串

     valuesList = valuesList.Where(x=>x.position == 1 || x.value.Contains(3))
    

    【讨论】:

    • 我在 linq 语句中使用字符串的原因是因为您可以看到我的查询有两个条件,但在某些情况下我希望它只考虑其中一个条件。这可以使用动态 linq 来实现吗?
    • 创建一个 if else 条件。查看查询是否包含一个,以及查询是否包含其他。
    • 为什么不看看使用 IQueryable 方法动态“构建”您的查询?
    • 另外,为了快速修复,只需在原始查询中添加更多括号,但最好的方法是使用动态字符串。
    猜你喜欢
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    相关资源
    最近更新 更多