我正在尝试使用linq执行以下SQL语句:
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 :(得分: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()
中。
答案 1 :(得分:0)
如果我理解你的错误。你应该读一些关于Joins
的内容。
here