表1:学生
StudentID, StudentName
表2:课程
CourseID, CourseName
表3:组
GroupID, GroupName
表4: StudentCourseGroup
StudentID, CourseID, GroupID
我希望所有属于'xyz'课程的学生都采用以下格式
Class MyStudent
string StudentName
String [] Groups
每个学生都可以成为一个或多个组的成员,我需要在我的LINQ查询中填充“Class MyClass”,以便它在每个对象中保存StudentName
和List of Groups。
你能否建议一个可以这样做的LINQ查询。
答案 0 :(得分:1)
var query = from s in db.Student
join scg in db.StudentCourseGroup on s.StudentID equals scg.StudentID
join c in db.Course on scg.CourseID equals c.CourseID
join g in db.Group on scg.GroupID equals g.GroupID
where c.CourseName == "xyz"
select new { s, g } into x
group x by x.s into studentGroups
select new MyStudent {
StudentName = studentGroups.Key.StudentName,
Groups = studentGroups.Select(sg => sg.g.GroupName)
};