SQL 查询Exist的EF实现

编写查询语句时,经常要用到if exist的判断方法。

list的lambda表达式中可以有

 List<Agent> agentList = new List<Agent>();
            agentList.Exists(t => t.Id == 1);

但是你会发现无法直接用于linq to SQL中:

System.NotSupportedException: 'LINQ to Entities does not recognize the method 'Boolean Exists(System.Predicate`1[System.Int32])' method, and this method cannot be translated into a store expression.'

可以换list.any的方法可以达到同样的目的:

agentList.Any(t => t.Id == 1);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL中,CASE表达式用于根据条件返回不同的结果。在CASE表达式中,可以使用EXISTS谓词来嵌套子查询。引用提到了在CASE表达式中可以使用EXISTS谓词。这意味着可以在CASE表达式中使用EXISTS来判断某个条件是否存在。引用中的示例展示了在一个查询使用了NOT EXISTS来筛选出满足条件的行。具体地说,在这个例子中,查询了表A的所有值,但排除了满足子查询条件的行。 修正后的示例展示了如何在CASE表达式和EXISTS中进行连接约束。在修正后的查询中,通过为a1和a2添加连接约束,确保了a1.year_month等于a2.year_month。同时,使用CASE表达式来判断a2.gmv是否大于100000000,并根据判断结果返回0或1。这样,只有当a2.gmv大于100000000时,才会返回1,进而满足NOT EXISTS的条件。 因此,修正后的查询将返回满足条件的行,并排除了满足子查询条件的行。这就是使用CASE和EXISTSSQL语句。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [SQL进阶-exists函数](https://blog.csdn.net/weixin_43131692/article/details/113744780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [关于 SQL 中的 CASE 表达式,你都知道那些妙用?](https://blog.csdn.net/qq_19403251/article/details/126806475)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值