【EF学习笔记07】----------加载关联表的数据 贪婪加载

讲解之前,先来看一下我们的数据库结构:班级表 学生表

贪婪加载

//贪婪加载
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语句,结果如下:

时间: 2024-08-02 21:58:12

【EF学习笔记07】----------加载关联表的数据 贪婪加载的相关文章

【EF学习笔记08】----------加载关联表的数据 显式加载

显式加载 讲解之前,先来看一下我们的数据库结构:班级表 学生表 加载从表集合类型 //显示加载 Console.WriteLine("=========查询集合==========="); using (var db = new Entities()) { var query = from v in db.Classes where v.ClassName == "机电10501" select v; var cls = query.Single(); db.Ent

Servlet学习笔记(二):表单数据

很多情况下,需要传递一些信息,从浏览器到 Web 服务器,最终到后台程序.浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法. 1.GET 方法:GET 方法向页面请求发送已编码的用户信息.页面和已编码的信息中间用 ? 字符分隔,如下所示:http://www.test.com/hello?key1=value1&key2=value2 GET 方法是默认的从浏览器向 Web 服务器传递信息的方法,它会产生一个很长的字符串,出现在浏览器的地址栏中.如果您

【EF学习笔记06】----------加载关联表的数据 延迟加载

讲解之前,先来看一下我们的数据库结构:班级表 学生表 延迟加载 //延迟加载 using (var db = new Entities()) { //查询班级 var classes = (from v in db.Classes where v.ClassName == "机电10501" select v).Single(); if (classes.Student != null) { //遍历该班级所有学生 foreach (var st in classes.Student)

EF学习笔记(八):更新关联数据

学习笔记主目录链接:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇链接:EF学习笔记(七):读取关联数据 本篇原文链接:Updating Related Data 本篇主要考虑对于有关联的数据进行新增.删除.更新操作:比如Course .Instructor: 对于Course来说,新增时候必须定义属于哪个Department,所以在新增.更新操作的时候,必须要用户选择Department: MVC5在选择基础控制器及视图框架的时候,如果选择EF的操作框架,则会自动带一

学习笔记 07 --- JUC集合

学习笔记 07 --- JUC集合 在讲JUC集合之前我们先总结一下Java的集合框架,主要包含Collection集合和Map类.Collection集合又能够划分为LIst和Set. 1. List的实现类主要有: LinkedList, ArrayList, Vector, Stack. (01) LinkedList是双向链表实现的双端队列:它不是线程安全的.仅仅适用于单线程. (02) ArrayList是数组实现的队列,它是一个动态数组.它也不是线程安全的,仅仅适用于单线程. (03

UI学习笔记---第十天UITableView表视图编辑

UITableView表视图编辑 表视图编辑的使用场景 当我们需要手动添加或者删除某条数据到tableView中的时候,就可以使用tableView编辑.比如微信 扣扣中删除和某人的通话 当我们需要手动调整单元格的顺序时,就可以通过tableView移动,移动单元格到指定位置 代理AppDelegate.m中代码 #import "AppDelegate.h" #import "RootViewController.h" @implementation AppDel

EF学习笔记(九):异步处理和存储过程

总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上一篇:EF学习笔记(八):更新关联数据 本篇原文:Async and Stored Procedures 为何要采用异步? 一个Web服务器肯定有可用线程的限制,那么在一些访问量特别大的情况下,线程肯定会消耗完:这个时候服务器肯定处理不了请求,必须等线程里处理结束才可以处理请求: 在非异步的时候,很多线程都处于等待状态,并不是一直在工作,而是在等类似于I/O等处理结束: 采用异步的时候,当一个处理在等待I/O处理结束的时

EF学习笔记(十一):实施继承

学习总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 上篇链接:EF学习笔记(十) 处理并发 本篇原文链接:Implementing Inheritance 面向对象的世界里,继承可以很好的重用代码.在本章就对Instructor和Student两个类进行实施继承处理,这两个类有公用的属性,比如LastName等,也有私有的属性: 可以不用增加任何页面,进行修改一些代码,这些修改后的继承关系就会自动反应到数据库中. 通过下图可以看到两个类有哪些公用属性: 那么就可以建一个

《机电传动控制》学习笔记-07

<机电传动控制>学习笔记07 胡恒谦 机卓1301 (注:本周补上第7周的学习笔记) PLC的编程元件: PLC内部有许多不同功能的器件,实际上这些器件是由电子电路和存储器组成的. 1.  输入继电器X 输入继电器由输入电路和输入寄存器组成,输入电路进行开关信号到数字量的转换,输入寄存器为映像输入信号的存储器. 2.  输出继电器Y 输出继电器由输出电路和输出寄存器组成.为适应不同的负载,输出电路一般有晶体管.晶闸管和继电器输出三种方式. 3.  定时器T 定时器又称时间继电器,由设定值寄存器