我想加盟LINQ C#三個SQL表的SQL低於LINQ查詢不返回預期的結果
SELECT
rpp.*
FROM dbo.Orgs ao
LEFT JOIN dbo.Afflia rpa
ON rpa.AccountId = ao.ID
INNER JOIN dbo.reports rpp
ON rpp.Id = rpa.reporttId
WHERE ao.Name like '%xyz%'
上面的查詢返回的數據,但相當於LINQ查詢不如下
from a in context.Orgs
join aff in context.Afflia on a.ID equals aff.AccountId
join prescriber in context.Reports on aff.reportId equals prescriber.Id
where a.ORG_NAME.Contains("xyz")
我可以知道哪裏的錯誤是什麼?
你確定這是等價的Linq查詢嗎?我通常使用方法的語法,但只是看着它,我會說這會創建所有內部連接。如果他們真的是一樣的,你可以用一個探查器來檢查嗎? –
因爲您正在嘗試執行內連接而不是左連接。你可以看看[這裏](https://stackoverflow.com/questions/3404975/left-outer-join-in-linq)如何正確地做到這一點。 – Vitali
請在SQL和LINQ查詢中使用有意義的變量名稱! – axlj