2013-06-28 73 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