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。 –