使用linq从多个表中进行选择
本文关键字:行选 选择 linq 使用 | 更新日期: 2023-09-27 18:20:13
我正在尝试使用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个表的主键/外键关系从第三个表中获取一个字段。预计每次都会有一个结果。
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()
中。
如果我理解你是对的我想你应该读一些关于Joins
的书。此处