EF中的多对多关系linq查询

我有3个表学生,课程和学生联系表StudentCourse,我如何返回给予学生Id = 1的所有课程,但也包括学生ID可能不是1并且与id 1的学生一样的课程? 结构是这样的:

student courses studentcourse 1 8 1 - 8 2 9 2 - 8 3 10 3 - 9 

所以棘手的部分是我还要包括课程8的其他行或者id为1的学生所采取的任何其他课程。

最终结果应该是2行:where子句将指定我对student id = 1(这是id 8的过程)的课程感兴趣,但我还想包括该课程的其他行。 结果是:

 1 - 8 2 - 8 

鉴于这是EF和您的最新说明,您应该在您的Student实体上有一个Courses导航属性,并在您的Course实体上有Students导航,这将允许您执行以下操作:

 var students = db.Students .Single(x=> x.Id == 1) .Courses.SelectMany(c=> c.Students) .Distinct();