使用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个表的主键/外键关系从第三个表中获取一个字段。预计每次都会有一个结果。

使用linq从多个表中进行选择

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的书。此处