5
我如何转换下面的查询lambda表达式SQL查询lambda表达式或LINQ
select *
from Invoice_main
where id not in
(select invoice_main_id from Invoice_payment_by_pay_method)
我无法找到“不”的选择。
我如何转换下面的查询lambda表达式SQL查询lambda表达式或LINQ
select *
from Invoice_main
where id not in
(select invoice_main_id from Invoice_payment_by_pay_method)
我无法找到“不”的选择。
假设你正在使用LINQ到SQL:!
from inv in Invoice_main
where !(from m in Invoice_payment_by_pay_method select m.invoice_main_id).Contains(inv.id)
select inv
的(...)包含(...)自动通过LINQ到SQL转换为NOT EXISTS
条款(注:这比NOT IN
子句更有效率)。
其他提供程序(即不是LINQ到SQL)可能不支持将.Contains
重写为EXISTS
,因此这可能不适用于所有内容。
嗨,我正在使用entitydatamodel。我不太了解entitydatamodel和linq到sql。但我认为linq to sql不适用于entitydatamodel。当我使用建议的查询时发出错误。它就像 - '找不到查询模式的实现...' – Mukesh
对不起以前的评论。它的工作。 – Mukesh
所以你使用的是实体框架。 LINQ-to-Entities比LINQ-to-SQL(我自己的观点)要严格得多。您没有与LINQ-to-Entities等效的内容。你必须有两个LINQ到实体的查询,一个从pay_method中选择ID,另一个使用'Any'从第一个查询中排除ID。 –