如何将以下查询转换为lambda表达式
select *
from Invoice_main
where id not in
(select invoice_main_id from Invoice_payment_by_pay_method)
我找不到'不在'的替代方案。
答案 0 :(得分:2)
假设您正在使用LINQ-to-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-to-SQL自动转换为NOT EXISTS
子句(注意:这比NOT IN
子句更有效)
其他提供程序(即不是LINQ-to-SQL)可能不支持将.Contains
重写为EXISTS
,因此这可能不适用于所有内容。