3
有沒有辦法準確地轉換成以下SQL查詢LINQ轉換嵌套的SQL查詢LINQ查詢
SELECT * FROM T1
WHERE ColumnA IN (
SELECT FkColumnA FROM T2
WHERE FkColumnB IN (
SELECT ColumnB FROM T3
WHERE FkColumnC IN (
SELECT ColumnC FROM T4
WHERE FkColumnD = 1)) AND FkColumnE is null AND ColumnF = 0)
而且,沒有人知道任何文檔,其中任何邏輯或指引,將SQL查詢轉換爲LINQ的佈局?
編輯1:
以上使用加入將是如下等效爲:
select * from T1 a
inner join T2 b on a.FKColumnA = b.ColumnA
inner join T3 c on c.ColumnB = b.FkColumnB
inner join T4 d on d.ColumnC = c.FkColumnC
where a.FkColumnD is null and a.ColumnE = 0
and d.ColumnC = 1
,它的等效LINQ查詢是
var linq = from q in context.T1
join r in context.T2
on q.FKColumnA equals r.ColumnA
join s in context.T3
on r.FkColumnB equals s.ColumnB
join t in context.T4
on s.FkColumnC equals t.ColumnC
where q.FkColumnD != null && q.ColumnE == false && t.ColumnC == 56816
select q.FkColumnF;
但使用JOINS看起來有點m礦石更簡單,更好在LINQ。因此,這個問題僅僅是爲了我的知識目的。
你使用'IN'子句而不是'JOIN's的原因是什麼? –
沒有具體原因。我也可以用JOINS來做到這一點。這只是我的知識,因爲我知道如何將SQL轉換爲LINQ –