加载关联表的数据 贪婪加载
讲解之前,先来看一下我们的数据库结构:班级表 学生表
贪婪加载
//贪婪加载 using (var db = new Entities()) { var classes = db.Classes.Where(v => v.ClassName == "机电10502").Include(v => v.Student); foreach (var cls in classes) { Console.WriteLine("============"+cls.ClassName); foreach (var stu in cls.Student) { Console.WriteLine(stu.StudentName); } } } //使用Include方法 只有一条sql语句被发送到数据库
追踪SQL语句
说明:此处根据条件查询,执行了一条SQL,一次性加载班级和该班级的所有学生
该SQL语句执行结果如下:
遍历所有班级和学生:
using (var db = new Entities()) { var classes = db.Classes.Include(v => v.Student); foreach (var cls in classes) { Console.WriteLine("============"+cls.ClassName); foreach (var stu in cls.Student) { Console.WriteLine(stu.StudentName); } } }
同样只执行一条SQL语句,结果如下: