显式加载

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

加载从表集合类型

//显示加载
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.Entry(cls).Collection(v => v.Student).Load();//加载集合使用Collection方法
Console.WriteLine("==========="+cls.ClassName);
foreach (var stu in cls.Student)
{
Console.WriteLine(stu.StudentName);
} //IsLoaded方法判断数据是否已经加载
Console.WriteLine(db.Entry(cls).Collection(v => v.Student).IsLoaded);
}

追踪SQL语句

说明:此处执行了2条SQL,先查询班级 再查询该班级学生

加载集合使用Collection方法,Entry的参数为单个实体

执行结果:

加载关联表单个实体

//显示加载
Console.WriteLine("=========查询单个实体===========");
using (var db = new Entities())
{
var student = db.Student.First();
db.Entry(student).Reference(v => v.Classes).Load();//加载单个实体使用Reference方法
Console.WriteLine(student.StudentName);
Console.WriteLine(student.Classes.ClassName);
}

追踪SQL语句

说明:此处执行2条SQL,先查询第一个学生 top (1),再查询该学生班级。

说明:显式加载不需要标记为virtual

按需加载 只查询部分字段

//按需查询
using (var db = new Entities())
{
var query = from v in db.Student
select new
{
id=v.StudentID,
name=v.StudentName
};
foreach (var st in query)
{
ObjectDumper.Write(st);
}
}

追踪SQL语句:

说明:生成的SQL语句只查询了 StudentID 和 StudentName 两个字段。

最新文章

  1. node基本理念(事件、多线程、进程)
  2. paper 119:[转]图像处理中不适定问题-图像建模与反问题处理
  3. phpcms v9调用自定义字段的方法步骤
  4. 禁止浏览器直接访问php文件
  5. IT工作中工资最高和增长最快的是什么
  6. SQL Server连接Oracle详细步骤
  7. Actioncontext跟ServletActionContext的区别---未完待续
  8. Qt Creator键盘快捷键速查
  9. YouKu iOS笔试题一
  10. 完整版百度地图点击列表定位到对应位置并有交互动画效果demo
  11. nginx+lua 根据指定路径反向代理
  12. 嵌入式全志V3s荔枝派板卡移植 aircrack-ng
  13. nodejs之glob与globby
  14. MVC教程四:Controller向View传值的几种方式
  15. WPS Office手机版调用接口代码指导帖之二 [复制链接]
  16. git中出现remote: HTTP Basic: Access denied
  17. 2019.03.30 Head first
  18. linux中使用arcpy
  19. vsftpd安装配置虚拟用户
  20. linux下发邮件

热门文章

  1. nginx+gunicorn+supervisor+flask @ centos
  2. ACE - ACE_Task源码剖析及线程池实现
  3. 基于cocos2d-x的Android游戏中使用fmod音频引擎
  4. mongodb,redis,hbase 三者都是nosql数据库,他们的最大区别和不同定位是什么?
  5. Ubuntu 14.04下安装Hadoop2.4.0 (单机模式)
  6. Neo4j Cypher运行示例
  7. Sprint第二个冲刺(第十一天)
  8. Webview 与h5的交互
  9. PhpStorm (强大的PHP开发环境)2016.2.1 附注册方法
  10. Oracle 学习之路开始