我有这个查询,我从 6 个表中检索它获取日期、评分、评分者、类(class)名称、分数、主题。
SELECT r.date, u1.username as rated, u2.username as rater, c.name as classname, s.ratings, sbj.name
FROM Ratings r
INNER JOIN Users u1 ON u1.userid = r.rated
INNER JOIN Users u2 ON u2.userid = r.rater
INNER JOIN ClassMembers cm ON u1.userid = cm.userid
INNER JOIN Class c ON cm.teamid = c.teamid
INNER JOIN Scores s ON s.ratingsid = r.ratingsid
INNER JOIN Subjects sbj ON sbj.subjectid = s.subjectid
这导致
date | rated | rater | teamname | score | subject
10/12/2012 john mike teamA 9 Math
10/09/2012 john mike teamA 9 Science
10/09/2012 john abra teamA 5 Math
10/09/2012 john abra teamA 5 Science
我必须将此查询转换为 LINQ 表达式。 我很难将我的 sql 查询转换为 LINQ。任何帮助将不胜感激。
最佳答案
你可以通过加入来做到这一点:
var results = from r in Ratings
join u1 in Users on u1.userid = r.rated
join u2 in Users on u2.userid = r.rater
join cm in ClassMembers on cm.userid = r.rated
join c in Class on cm.teamid = c.teamid
join s in Scores on s.ratingsid = r.ratingsid
join sbj in Subjects on sbj.subjectid = s.subjectid
select new
{
Date = r.date,
Rated = u1.username,
Rater = u2.username,
ClassName = c.name,
Ratings = s.ratings,
Subject = sbj.name
};
关于sql-server - 将具有多个内部连接的 sql 查询转换为 LINQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13053321/