2013-06-28 72 views
0

我試圖執行使用LINQ下面的SQL語句的多個表:選擇使用LINQ

SELECT TTT.SomeField 
FROM Table1 as T, Table2 as TT, Table3 as TTT 
WHERE (T.NumberID = 100 OR T.NumberID = 101) 
    AND T.QuestionID = 200 
    AND T.ResponseID = TT.ResponseID 
    AND TT.AnswerID = TTT.AnswerID 

本質上正從第三個表一個字段基於其他2臺主/外鍵關係。預計每次都會有一個結果。

+0

http://www.dotnetperls.com/join – speti43

+0

你可以發表3個表的例子和你想要的結果嗎? – skyfoot

回答

0

如果我明白你的正確。我想你應該閱讀一些關於Joins的內容。 here

2
var query = from t in db.Table1 
      join tt in db.Table2 on t.ResponseID equals tt.ResponseID 
      join ttt in db.Table3 on tt.AnswerID equals ttt.AnswerID 
      where (t.NumberID == 100 || t.NumberID == 101) && t.QuestionID == 200 
      select ttt.SomeField 

如果你總是期待一個結果,你可以在().Single()把這個包,或者,如果有可能是沒有結果發現,在().SingleOrDefault()

+0

SingleOrDefault * – Jonesopolis

+0

@Jonesy,錯字。謝謝。 – Andrei

+0

肯定嘛!我想他也想TTT.somefield。不是'那個人' – Jonesopolis