sql-server - 将具有多个内部连接的 sql 查询转换为 LINQ

标签 sql-server linq tsql

我有这个查询,我从 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/

相关文章:

c# - 如何压缩一个 IEnumerable 自身

sql-server-2008 - 用于标签的 GUID 与身份

sql-server - 将约束移至连接是否比连接和 where 子句更有效?

mysql - 如何使用 Lookup 函数对表中列的值求和

sql - SQL 服务器中的 FOR XML PATH 和 [text()]

sql - 多条记录的 SCOPE_IDENTITY

java - CrudRepository existsBy 返回错误结果

c# - 将 Linq 查询结果转换为接口(interface)

sql - 有没有办法在SQL中自动填充日期

asp.net - 向LINQ中向SQL生成的类添加新方法