关于WebApi的多表查询疑问

这两天一直在研究这个,网上查了不少人的资料,但各有各的说法,各有各的理论和方法结论,我也是陷入了一头雾水,只好再度发帖提问

打个比方

我现有三张表

学生表:ID,Name,Age

课程表:CourseID,StudentID

教师表:TeacherID,CourseID,PartmentID

其中,学生表与课程表是一对一的关系,通过ID与StudentID进行匹配,但学生表与教师表没有直接关系。

课程表与教师表是一对多的关系,通过CourseID进行匹配,一个课程可能包含多位教师。

现我想生成的具体格式如下:

【 {学生表:
ID,

                Name,

                Age
                }

                {
                课程表:
                CourseID,
                StudentId,
                教师表:{TeacherID,CourseID,PartmentID}
                }
】

因为涉及多表查询,我本来的想法是使用Linq语句。
from a in db.student 
join b in db.Course on a.Id equals b.studentid
join c in db.Course on b.CourseId equals c.CourseId

然后一个个再塞进赋值,但很快我就意识到Join链接会导致生成大段无意义重复的行列,所以请坛友给予我一点思路和想法。
由于课程表与教师表是一对多关系,可能有多个教师表对应单个课程表,这也意味着教师表要用List来存放。

之前不是给你代码了么,你可以嵌套查询啊

db.Students.Where(x => x.id == id).Select(x => new { x, courses = db.Where(y => y.id == x.courseid) })