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

本文关键字:解决方案 LINQ 最简单 | 更新日期: 2023-09-27 18:20:19

如果我在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);
}

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

您所拥有的实际上是可以的,但是,您可以在一个查询中完成,即

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();