You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LINQ Lambda表达式中编写‘AND NOT’逻辑?(SQL转Lambda场景)

将SQL转换为LINQ Lambda表达式

直接对应你给出的SQL的LINQ Lambda表达式如下:

var result = dbContext.Students
    .Where(s => s.MathGrades > 5 
                && s.FizGrades > 5 
                && !(s.MathGrades == 2 && s.FizGrades == 2));

关于AND NOT逻辑的实现

在LINQ Lambda中,AND NOT对应的就是**&& !()**的组合:

  • &&对应SQL里的AND,用于连接多个并列条件
  • !()对应SQL里的NOT (...),括号内包裹需要取反的子条件,!表示逻辑非

另外,根据德摩根定律,NOT (A AND B)可以等价转换为NOT A OR NOT B,对应的Lambda表达式如下,效果和原SQL完全一致:

var result = dbContext.Students
    .Where(s => s.MathGrades > 5 
                && s.FizGrades > 5 
                && (s.MathGrades != 2 || s.FizGrades != 2));

两种写法都能满足需求,可根据自己的阅读习惯选择。

内容的提问来源于stack exchange,提问作者Coko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:50:38