-1
我有一個SQL查詢,我想轉換成Linq,但我無法弄清楚。任何幫助將不勝感激。由於Linq內部加入一個Or子句
SELECT Distinct Name FROM Context
inner join Nodes_1 on
Context.Node1Id= Nodes_1.Id OR
Context.Node2Id= Nodes_1.Id
where Context.ContextId = 1
我有一個SQL查詢,我想轉換成Linq,但我無法弄清楚。任何幫助將不勝感激。由於Linq內部加入一個Or子句
SELECT Distinct Name FROM Context
inner join Nodes_1 on
Context.Node1Id= Nodes_1.Id OR
Context.Node2Id= Nodes_1.Id
where Context.ContextId = 1
這應該爲你工作:
var something = (from a in Context.Where(i => i.ContextId == 1)
from b in Nodes_1
where (a.Node1Id == b.Id) || (a.Node2Id == b.Id)
select a.Name).Distinct();
JOIN
與OR
只是與JOIN
兩個單獨的查詢的UNION
。 所以,要用LINQ重現它,你應該連接兩個linq查詢。
或者,你可以這樣做:
var query = (from entry in Context
from node in Nodes_1
where node.Id==entry.Node1Id ||
node.Id==entry.Node2Id
where entry.ContextId==1
select entry.Name)
.Distinct();
它給了我錯了。就像我使用不帶OR子句的SQL查詢以及後面的第二條語句一樣 – user2516083