我有以下两个班级
public class Student
{
public string Name { get; set; }
public int SchoolId { get; set; }
}
public class School
{
public int SchoolId { get; set; }
public IList<Student> Students { get; set; }
}
在SchoolId
类中添加Student
可能很奇怪,但我们这样做是为了跟踪。
在数据库中,我们的表格Students
包含StudentName
和schoolId
如何通过从此表中选择所有内容来重建Schools
列表
答案 0 :(得分:2)
这很直截了当。只需在Linq中使用GroupBy
方法。
var results = db.Students
.GroupBy(s => s.SchoolId,
(id, g) => new School() { SchoolId = id, Students = g.ToList() });
或者如果您更喜欢查询语法,请使用:
var results =
from s in db.Students
group s by s.StudentId into g
select new School()
{
SchoolId = g.Key,
Students = g.ToList()
};