代码之家  ›  专栏  ›  技术社区  ›  Laziale

具有可空参数的Linq where子句

  •  0
  • Laziale  · 技术社区  · 6 年前

    我正在尝试执行一个可能有空参数的linq查询。

    这是我的电话

    listOfControlsVM = db.Controls.Where((status == null || s.Status.Description == status) && (impact == null || s.Impact == impact)).ToList();
    

    现在status或impact都可以是空参数(我还有两个参数,但我从示例中删除了它们)。使用这种方法,查询不会返回正确的结果集。

    我想知道是否还有其他更好的方法来处理linq中的可空参数。例如,如果status或impact有值,则将它们包含在条件中,否则跳过它们。

    1 回复  |  直到 6 年前
        1
  •  0
  •   AGH    6 年前

    有一个 HasValue nullable 变量而不是null。

     listOfControlsVM = db.Controls.Where((!status.HasValue || s.Status.Description == status) && (!impact.HasValue || s.Impact == impact)).ToList();
    

    我希望这能帮到你:)