EF – 3.EF数据查询基础(下)数据关联

时间:2022-06-29 07:25:06

5.5.1 《关于“数据关联”,你不一定清楚的事》

这讲视频比较全面地介绍了“一对一”、“一对多”和“多对多”三种数据关联类型在关系数据库和Entity Framework数据模型中的实现。再次强调一下,本讲所介绍的内容非常重要,务必掌握。

5.5.2 《Entity Framework与单元测试》 

在数据库应用程序开发中,单元测试对保证代码质量,实现敏捷开发具有重要意义,在这讲视频中,将向您介绍一些实用的单元测试方法,这些方法,您可以直接应用于自己的项目开发实践中。另外,在后继的视频中,我们也会使用单元测试这个工具来探索Entity Framework的技术内幕。

提示一下,请注意如何对异步方法进行单元测试

5.5.3 《关联数据的延迟加载》 

默认情况下,Entity Framework会为数据实体类的导航属性添加一个virtual关键字,在程序运行时,这将导致Entity Framework创建一个代理对象,实现“需要时才提取数据”的这一数据提取策略,而这一切全都是自动的。本讲视频通过单元测试示例,介绍了Entity Framework的这一功能特性。

5.5.4 《关联数据的预加载》 

可以使用Include("导航属性名")的方式,让Entity Framework生成一条Join查询语句,一次性地把所有需要的数据都提取出来。本讲视频介绍了Entity Framework的这个特性。

5.5.5 《关联数据的显式加载》 

在代码中可以随时使用Load()方法,在需要的时候加载数据。本讲视频展示了这种数据加载的实例。

在这一课时中,我们将围绕着“数据关联”这个中心而展开。不要轻视“数据关联”这件事,在开发数据库应用程序时,弄清楚哪些数据之间有关联,又如何设计与实现这些关联,都是很要紧的问题,处理不好,会给系统的运行性能、日后的系统维护和二次开发,带来很大的麻烦。

在学习后面的内容之前,请务必保证你已经掌握本课时所介绍的内容。

5.5.1 《关于“数据关联”,你不一定清楚的事》  时长:15分16秒 难度:偏难

这讲视频比较全面地介绍了“一对一”、“一对多”和“多对多”三种数据关联类型在关系数据库和Entity Framework数据模型中的实现。再次强调一下,本讲所介绍的内容非常重要,务必掌握。

EF – 3.EF数据查询基础(下)数据关联

5.5.2 《Entity Framework与单元测试》  时长:12分50秒 难度:中

在数据库应用程序开发中,单元测试对保证代码质量,实现敏捷开发具有重要意义,在这讲视频中,将向您介绍一些实用的单元测试方法,这些方法,您可以直接应用于自己的项目开发实践中。另外,在后继的视频中,我们也会使用单元测试这个工具来探索Entity Framework的技术内幕。

EF – 3.EF数据查询基础(下)数据关联

提示一下,请注意如何对异步方法进行单元测试

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using whatIsEF;
using System.Linq;
using System.Data.Entity; namespace UnitTestwhatIsEF
{
[TestClass]
public class UnitTest
{
// 用于存储提供给单元测试的信息。
private TestContext testContextInstance; public TestContext TestContextInstance
{
get { return testContextInstance; }
set { testContextInstance = value; }
} //声明一个UPMSEntities
private static UPMSEntities context; //必须在测试类中的任意测试运行之前使用
[ClassInitialize()]
public static void myClassInitialize(TestContext textcontext)
{
//就不用使用 using (UPMSEntities dbc = new UPMSEntities())
context = new UPMSEntities();
} //测试类中所有的测试都运行以后使用
[ClassCleanup()]
public static void MyClassCleanup()
{
//最后销毁
context.Dispose();
} //测试方法
[TestMethod]
public void TestShowUPMS_User()
{
var lq = from d in context.UPMS_User
select d;
Assert.IsTrue(lq.Count() > 0);
foreach (var item in lq)
{
Console.WriteLine(item.UserId + "," + item.RealName);
}
}
}
}

5.5.3 《关联数据的延迟加载》  时长:7分51秒  难度:偏难

默认情况下,Entity Framework会为数据实体类的导航属性添加一个virtual关键字,在程序运行时,这将导致Entity Framework创建一个代理对象,实现“需要时才提取数据”的这一数据提取策略,而这一切全都是自动的。本讲视频通过单元测试示例,介绍了Entity Framework的这一功能特性。

*EF上下文里的 DBSet<T> 里的标准查询运算符方法,来自于System.Linq.Queryable里 给IQueryable接口添加的方法
*延迟加载,本质原因一: 当前可能通过多个SQO方法来组合 查询条件,那么每个方法 都只是添加一个查询条件而已,
* 无法确定本次查询条件是否已经添加结束
* 所以,没有办法在每个SQO方法的时候确定SQL语句是什么,只能返回一个包含了所有添加条件的 DbQuery对象
* 当使用这个 DbQuery对象 的时候,才根据所有条件生成 SQL 语句,查询数据库

EF – 3.EF数据查询基础(下)数据关联

5.5.4 《关联数据的预加载》  时长:3分41秒 难度:中

可以使用Include("导航属性名")的方式,让Entity Framework生成一条Join查询语句,一次性地把所有需要的数据都提取出来。本讲视频介绍了Entity Framework的这个特性。

EF – 3.EF数据查询基础(下)数据关联

5.5.5 《关联数据的显式加载》  时长:5分23秒 难度:偏难

在代码中可以随时使用Load()方法,在需要的时候加载数据。本讲视频展示了这种数据加载的实例。

EF – 3.EF数据查询基础(下)数据关联

EF – 3.EF数据查询基础(下)数据关联

金旭亮

面向对象软件开发实践之专业技能训练

MOOC课程 http://mooc.study.163.com/learn/BIT-1000013000#/learn/content?type=detail&id=1000166069

EF – 3.EF数据查询基础(下)数据关联的更多相关文章

  1. 深入理解 EF Core:使用查询过滤器实现数据软删除

    原文:https://bit.ly/2Cy3J5f 作者:Jon P Smith 翻译:王亮 声明:我翻译技术文章不是逐句翻译的,而是根据我自己的理解来表述的.其中可能会去除一些本人实在不知道如何组织 ...

  2. 数据库&equals;&equals;&gt&semi;&gt&semi;数据查询基础

    数据查询基础 还好吗?几天不见,甚是思念呀!笑对人生,好好生活,快快乐乐的迎接我们的美好未来吧! 好吧!抒情结束,我们一起来学习一下我们今天的主题:数据查询基础,很有意思哟.让我们来感受它的魅力吧! ...

  3. sql数据查询基础笔记

    使用SELETE语句进行查询 语法 SELECT<列名> FROM<表名>  [ORDER BY <排序的列名>[ASC或DESC]] 1.查询所有的数据和列 SE ...

  4. EF &ndash&semi; 2&period;EF数据查询基础(上)查询数据的实用编程技巧

    目录 5.4.1 查询符合条件的单条记录 EF使用SingleOrDefault()和Find()两个方法查询符合条件的单条记录. 5.4.2 Entity Framework中的内部数据缓存 DbS ...

  5. EF – 2&period;EF数据查询基础(上)查询数据的实用编程技巧

    目录 5.4.1 查询符合条件的单条记录 EF使用SingleOrDefault()和Find()两个方法查询符合条件的单条记录. 5.4.2 Entity Framework中的内部数据缓存 DbS ...

  6. HQL数据查询基础

    HQL定义 1.Hibernate Query Language, Hibernate查询语言 2.HQL是面向对象的查询语言(HQL查询的主体是映射配置的持久化类及其属性而SQL查询主体是数据库表) ...

  7. Oracle数据库命令行下数据的导入导出

    //设置导入导出字符集,导入导出都要设置一下 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK //导出 exp system/oracle@orcl file=/u ...

  8. hibernate的基础学习--多表关联数据查询

    Hibernate共提供4种多表关联数据查询方式 OID数据查询+OGN数据查询方式 HQL数据查询方式 QBC数据查询方式 本地SQL查询方式(hibernate很少用) 1.OID数据查询+OGN ...

  9. CYQ&period;Data 轻量数据层之路 使用篇二曲 MAction 数据查询&lpar;十三&rpar;----002

    原文链接:https://blog.csdn.net/cyq1162/article/details/53303390 前言说明: 本篇继续上一篇内容,本节介绍所有相关查询的使用. 主要内容提要: 1 ...

随机推荐

  1. php-建造者模式(Builder)解析

    其与抽象模式相类似,都可以创建复杂的对象,但是抽象工厂更注重多个系列的产品对象,而Builder模式则着重于一步一步的构建一个复杂的对象,在最后一步才返回产品, 使用建造者模式的好处是: 1.将构造代 ...

  2. DataTable转实体

    public class ModelConvertHelper<T> where T : new() { public static IList<T> ConvertToMod ...

  3. 通过Microsoft Azure服务设计网络架构的经验分享

    作者 王枫  发布于 2014年4月8日 本文从产品设计和架构角度分享了Microsoft Azure网络服务方面的使用经验,希望你在阅读本文之后能够了解这些服务之间,从而更好地设计你的架构. Mic ...

  4. Windows200864位操作系统下的SQLPLUS&period;EXE 无法找到入口解决办法和Oracle环境变量的设置

    本机环境:Windows2008 64位中文版操作系统+Oracle11G+安装了Oracle32位和64位客户端驱动 问题起源:Path环境变量被360安全卫士优化修复后,整个给清空了,hosts文 ...

  5. HttpUtility&period;UrlEncode编码重写

    1. 某些系统方法,例如.NET系统方法HttpUtility.UrlEncode会将‘=’编码成‘%3d’,而不是%3D,导致加密签名通不过验证,请开发者注意检查. 2.Java 1.3和早期版本中 ...

  6. 实训任务05 MapReduce获取成绩表的最高分记录

    实训任务05  MapReduce获取成绩表的最高分记录 实训1:统计用户纺问次数 任务描述: 统计用户在2016年度每个自然日的总访问次数.原始数据文件中提供了用户名称与访问日期.这个任务就是要获取 ...

  7. rabbitMQ模式

    1.hello  消息生产者p将消息放入队列 消费者监听队列,如果队列中有消息,就消费掉,消息被拿走后,自动从队列删除(隐患,消息可能没有被消费者正确处理,已经消失了,无法恢复) 应用场景:聊天室 案 ...

  8. Go 程序的性能调试问题

    英文原文:Debugging performance issues in Go programs 假设你手上有个Go语言编写的程序,你打算提升它的性能.目前有一些工具可以为此提供帮助.这些工具能帮你发 ...

  9. Shiro 五张表

    参考博客: http://blog.csdn.net/frankcheng5143/article/details/50836619 Filter:运行过程中改变进入资源的请求和资源返回的响应中的有效 ...

  10. 如果你的eclipse在每次run或debug时都莫名其妙的做一件事

    新项目,使用Ant打war包.结果写完了Ant以后,包是打好了,却使eclipse以后每次run或debug时都莫名其妙地自动先执行这个Ant, 让人十分苦恼. 其实,是你的eclipse设置出了问题 ...