简体   繁体   English

将 SQL 查询转换为 Linq 表达式

[英]Convert SQL query into Linq expression

There are tables Subject , Student and SubjectEnrolled有表SubjectStudentSubjectEnrolled

  • Subject table have two columns SubjectId and SubjectName Subject表有两列SubjectIdSubjectName
  • SubjectEnrolled table also have two column StudentID (foreign key to StudentTable ) and SubjectId (foreign key to Subject ) SubjectEnrolled表也有两列StudentIDSubjectId StudentTable Subject的外键)

I want to convert this SQL query我想转换这个 SQL 查询

SELECT SubjectName
FROM Subject
WHERE SubjectId IN 
(
    SELECT SubjectId
    FROM SubjectEnrolled
    WHERE StudentID=7
)

Into a Linq or Lamda expression变成 Linq 或 lamda 表达式

using (var db = new DbContext())
{
    var res = from  r in db.Subjects.....
}

1 - SQL: use inner join instead IN : 1 - SQL:使用inner join代替IN

SELECT SubjectName FROM Subject sub
INNER JOIN SubjectEnrolled subEn on sub.SubjectId = subEn.SubjectId
WHERE subEn.StudentID = 7

2 - Linq Query Join : 2 - Linq 查询Join

var res = (from sub in db.Subjects
          join subEn in db.SubjectEnrolleds on sub.SubjectId equals subEn.SubjectId
          where subEn.StudentID = 7).ToList();

I hope you find this helpful.我希望你觉得这有帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM