最简单的LINQ多对多解决方案

时间:2013-06-29 15:02:11

标签: c# linq

如果StudentsClasses之间存在多对多关系,并且我创建了一个名为Students_Classes的链接表,那么获取列表的最简单方法是什么? StudentID的课程?

现在我正在做以下事情(我知道这不优雅):

List<Class> classes = new List<Class>();
List<Students_Classes> students_classes = db.Students_Classes.Where(s => s.StudentID == id).ToList();

foreach (var item in students_classes)
{
    classes.Add(item.Class);
}

1 个答案:

答案 0 :(得分:3)

你所拥有的实际上是可以的,但是,你可以在一个查询中做到这一点,即

var classes = (from s in db.Students_Classes
               where s.StudentID == id
               select s.Class).ToList();

或者因为您似乎更喜欢Lambda到LINQ

var classes = db.Student_Classes.Where(s => s.StudentID == id)
                                .Select(s => s.Class)
                                .ToList();