演练5-4:Contoso大学校园管理系统4

在之前的教程中,我们已经完成了学校的数据模型。现在我们将读取和显示相关数据,请理解EF装载导航属性的方式。

下图显示了我们将要实现的页面效果。

一、Lazy、Eager、Explicit数据加载

使用EF为实体中的导航属性加载相关数据,有下面几种方法。

1.Lazy loading

当实体第一次读取时,相关数据并没有获得。然而当你第一次想要访问导航属性时,导航属性的相关数据会自动获得。这产生了多次访问数据库,一次是实体数据读取,一次是导航属性读取。

2.Eager loading

当实体读取时,相关数据也一起读取,使用Include方法实现。这是通过join数据表,查询获取需要的数据。

3.Explicit loading

当你访问导航属性时,相关数据不会自动获取。你需要在代码中显式获取相关数据。

Lazying loading和Explicit  Loading都称为延迟加载。

4.讨论

时间: 2024-10-21 14:42:19

演练5-4:Contoso大学校园管理系统4的相关文章

演练5-7:Contoso大学校园管理系统(实现继承)

在上一次教程中,你已经能够处理并发异常.这个教程将会展示如何在数据模型中实现继承. 在面向对象的程序设计中,你可以通过继承来清除冗余的代码.在这个教程中,你将要通过修改教师 Instructor 和学生 Student 类,以便使他们从包含类似 LastName 属性的 Person 类中派生.对于 Web 页面不需要任何改动,你需要修改一点代码,这些修改将会被自动反射到数据库中. 一.单表继承 (Table-per-Hierarchy)  vs 类型表 (Table-per-Type) 继承

演练5-6:Contoso大学校园管理系统6

在上一次的教程中,我们处理了关联数据问题.这个教程演示如何处理并发问题.你将使用Department实体创建一个页面,这个页面在支持编辑和删除的同时,还可以处理并发错误.下面的截图演示了Index页面和Delete页面,包括在出现并发冲突的时候提示的一些信息. 一.并发冲突 并发冲突出现在这样的时候,一个用户正在显示并编辑一个实体,但是在这个用户将修改保存到数据库之前,另外的一个用户却更新了同样的实体.如果你没有通过EF检测类似的冲突,最后一个更新数据的用户将会覆盖其他用户的修改.例如,一个大客

演练5-1:Contoso大学校园管理1

**演练目的:掌握复杂模型的应用程序开发. Contoso大学校园管理系统功能包括学生.课程.教师的管理. 一.创建MVC Web应用程序 显示效果如下图,操作步骤略. 二.创建数据模型 1.创建学生实体 using System; using System.Collections.Generic; namespace ContosoUniversity.Models { public class Student { public int StudentID { get; set; } publ

Contoso 大学 - 使用 EF Code First 创建 MVC 应用,实例演练

Contoso 大学 Web 示例应用演示了如何使用 EF 技术创建 ASP.NET MVC 应用.示例中的 Contoso 大学是虚构的.应用包括了类似学生注册.课程创建以及教师分配等功能. 这个系列教程展示了创建 Contoso 大学应用的步骤.你可以 下载完整 的程序,或者按照教程一步一步创建它,这个教程中使用 C# 进行演示,下载的代码中同时包含 C# 和 VB 实现.如果你有与这个教程没有直接相关的问题,可以张贴到 ASP.NET Entity Framework forum  或者

Contoso 大学 - 7 – 处理并发

原文地址:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/handling-concurrency-with-the-entity-framework-in-an-asp-net-mvc-application 全文目录:Contoso 大学 - 使用 EF Code First 创建 MVC 应用 在上一次的教程中我们处理了关联数据问题.这个教程演示如何处理并发问题.你将使用 Department 实体创建一

开源项目1:某大学校友管理系统

申明:所有的本人开源项目仅供学习交流用. 为了方便学习交流,我会慢慢将一些私有的项目开源,有些项目可能开发的时间比较早,会有些欠缺,可以多多交流. IDE:myeclipse 8.5(版本问题不大),web服务器:tomcat 6.0,数据库:sql server 2000/2005,系统架构:struts2+Hibernate+Spring+Ajax 界面篇: 由于下班在即,剩余分析晚上稍后,源码和数据库下载也稍后 开源项目1:某大学校友管理系统

Contoso 大学 - 3 - 排序、过滤及分页

原文地址:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application 在上一个课程中,我们已经学习了如何使用 EF 对 Student 实体进行增.删.改.查处理.这次的课程我们将对学生的 Index 页面加入排序.过滤以及分页的功能.还要创建一个页面完成

Contoso 大学 - 5 – 读取关联数据

原文地址:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/reading-related-data-with-the-entity-framework-in-an-asp-net-mvc-application 全文目录:Contoso 大学 - 使用 EF Code First 创建 MVC 应用 在前面的课程中已经完成了 School 数据模型.在这次的课程中,将要读取和显示相关的数据,这里指的是 EF 通

Contoso 大学 - 10 - 高级 EF 应用场景

原文地址:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/advanced-entity-framework-scenarios-for-an-mvc-web-application全文目录:Contoso 大学 - 使用 EF Code First 创建 MVC 应用 在上一个教程中,你已经实现了仓储和工作单元模式.这个教程涵盖下列主题: 执行原始的 SQL 查询 执行没有跟踪的查询 检查发送到数据库的查询