2015-05-22 26 views
-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 

回答

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(); 
1

JOINOR只是與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(); 
+0

它給了我錯了。就像我使用不帶OR子句的SQL查詢以及後面的第二條語句一樣 – user2516083