C#程序设计及应用教程 第3版 “十二五”普通高等教育本科国家级规划教材 教学课件 ppt 作者 马骏 第12章 数据库与实体数据模型

上传人:E**** 文档编号:89368203 上传时间:2019-05-24 格式:PPT 页数:51 大小:1.59MB
返回 下载 相关 举报
C#程序设计及应用教程 第3版  “十二五”普通高等教育本科国家级规划教材  教学课件 ppt 作者  马骏 第12章 数据库与实体数据模型_第1页
第1页 / 共51页
C#程序设计及应用教程 第3版  “十二五”普通高等教育本科国家级规划教材  教学课件 ppt 作者  马骏 第12章 数据库与实体数据模型_第2页
第2页 / 共51页
C#程序设计及应用教程 第3版  “十二五”普通高等教育本科国家级规划教材  教学课件 ppt 作者  马骏 第12章 数据库与实体数据模型_第3页
第3页 / 共51页
C#程序设计及应用教程 第3版  “十二五”普通高等教育本科国家级规划教材  教学课件 ppt 作者  马骏 第12章 数据库与实体数据模型_第4页
第4页 / 共51页
C#程序设计及应用教程 第3版  “十二五”普通高等教育本科国家级规划教材  教学课件 ppt 作者  马骏 第12章 数据库与实体数据模型_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《C#程序设计及应用教程 第3版 “十二五”普通高等教育本科国家级规划教材 教学课件 ppt 作者 马骏 第12章 数据库与实体数据模型》由会员分享,可在线阅读,更多相关《C#程序设计及应用教程 第3版 “十二五”普通高等教育本科国家级规划教材 教学课件 ppt 作者 马骏 第12章 数据库与实体数据模型(51页珍藏版)》请在金锄头文库上搜索。

1、教育部普通高等教育十二五国家级规划教材 C#程序设计及应用教程第3版 (包括简化版:C#程序设计教程第3版) 第12章 数据库与实体数据模型,2,Ch12 数据库与实体数据模型,12.1 创建数据库和表 12.2 利用实体框架创建实体数据模型 12.3 使用LINQ to Entities访问实体对象 12.4 DataGrid控件,3,12.1 创建数据库和表,12.1.1 ADO.NET数据访问技术 12.1.2 SQL Server 2012简介 12.1.3 创建LocalDB数据库 12.1.4 连接其他已有的数据库,12.1.1 ADO.NET数据访问技术,1利用DataSet访问

2、数据库 用DataSet来实现,这是ADO.NET刚推出时提供的技术,用于在断开连接方式下对数据进行处理,在VS2005、VS2008、VS2010和VS2012中都可以使用。 将驻留在本机内存中的DataSet作为中间层,即应用程序和DataSet进行交互,DataSet再和数据库进行交互。 2利用LINQ to DataSet访问数据库 这种方式和第一种方式类似,区别是应用程序可以使用LINQ语法访问DataSet,用法比第一种方式更灵活,也更简单。 在VS2008、VS2010和VS2012中都可以使用。,4,12.1.1 ADO.NET数据访问技术,3利用LINQ to SQL访问数据

3、库 用LINQ to SQL来实现,在VS2008、VS2010和VS2012中都可以使用。 这种方式直接和SQL Server数据库进行交互,执行效率高,速度快,但该方式不支持其他类型的数据库。 在LINQ to SQL中,先利用O/R设计器构建模型,再利用该模型传递SQL语句,执行SQL命令,也可以用LINQ语法直接访问SQL Server。使用这种技术时,一般用它设计自定义的中间层对象模型(中间件),然后将其做成.dll文件供其他应用程序调用。,5,12.1.1 ADO.NET数据访问技术,4利用实体框架和LINQ to Entities访问数据库 用实体框架和LINQ to Entit

4、ies来实现,这是微软建议的数据库访问方式,在VS2008、VS2010和VS2012中均可使用。 在VS2012中利用该模型可支持多种类型的数据库(包括SQL Server、Oracle、DB2、MySQL等),而且可由数据库供应商直接提供该模型的数据库访问引擎。,6,12.1.2 SQL Server 2012简介,1SQL Server技术的分类,7,12.1.2 SQL Server 2012简介,2SQL Server 2012数据库引擎的主要特点 (1)提供了针对操作系统升级的AlwaysOn可用性组的跨群集迁移。 (2)针对可编程性的增强功能。 (3)针对可扩展性和性能的增强功能

5、。 (4)大数据支持。,8,12.1.2 SQL Server 2012简介,3SQL Server 2012的版本 SQL Server 2012 Enterprise(64位和32位) SQL Server 2012 Business Intelligence(64位和32位) SQL Server 2012 Standard(64位和32位) SQL Server 2012 Web(64位和32位) SQL Server 2012 Developer(64位和32 位) SQL Server 2012 Express(64位和32位) SQL Server 2012 Express Lo

6、calDB,9,12.1.3 创建LocalDB数据库,优点是用法简单,而且将项目和数据库从一台机器复制到另一台机器上时,不需要做任何修改。 LocalDB是基于服务的数据库。 通过应用程序访问数据库时,VS2012会自动将该.mdf文件附加到LocalDB的默认实例中,当不再使用数据库时,LocalDB便将.mdf文件从默认实例中自动分离出来。 虽然本章的例子用LocalDB来讲解,但是实现代码对SQL Server 2012的其他版本同样适用。 也可以在VS2012下使用SQL Server 2008,比如SQL Server 2008 Express版,但是如果将其升级到SQL Serv

7、er 2012 Express LocalDB,将无法再用SQL Server 2008的Express打开它。,10,12.1.3 创建LocalDB数据库,学院编码对照表(XueYuan),11,12.1.3 创建LocalDB数据库,学生基本情况表(Student),12,12.1.3 创建LocalDB数据库,家庭成员情况表(FamilyInfo),13,12.1.3 创建LocalDB数据库,【例12-1】演示在VS2012开发环境下直接创建数据库的基本用法,14,12.1.3 创建LocalDB数据库,【例12-1】演示在VS2012开发环境下直接创建数据库的基本用法,15,12.

8、1.3 创建LocalDB数据库,【例12-1】演示在VS2012开发环境下直接创建数据库的基本用法,16,12.1.3 创建LocalDB数据库,【例12-1】演示在VS2012开发环境下直接创建数据库的基本用法,17,12.1.3 创建LocalDB数据库,【例12-1】演示在VS2012开发环境下直接创建数据库的基本用法,18,12.1.3 创建LocalDB数据库,【例12-1】演示在VS2012开发环境下直接创建数据库的基本用法 CREATE TABLE dbo.Student ( XueHao NCHAR (8) NOT NULL, XingMing NVARCHAR (50) N

9、OT NULL, XingBie NCHAR (1) NULL, BirthDate DATE NULL, ChengJi INT NULL, XueYuanID NCHAR (2) NULL, Photo VARBINARY (MAX) NULL, PRIMARY KEY CLUSTERED (XueHao ASC), CONSTRAINT FK_Student_XueYuan FOREIGN KEY (XueYuanID) REFERENCES dbo.XueYuan (XueYuanID) );,19,12.1.3 创建LocalDB数据库,【例12-1】演示在VS2012开发环境下直接

10、创建数据库的基本用法,20,12.1.3 创建LocalDB数据库,【例12-1】演示在VS2012开发环境下直接创建数据库的基本用法,21,12.1.4 连接其他已有的数据库,1Microsoft SQL Server 2Microsoft SQL Server Compact 4.0 3Microsoft SQL Server数据库文件 4其他,22,12.2 利用实体框架创建实体数据模型,12.2.1 实体框架基本概念 12.2.2 实体框架开发模式 12.2.3 从数据库创建实体数据模型,23,12.2.1 实体框架基本概念,实体框架具有以下优点。 (1)应用程序可以通过概念模型(包括

11、具有继承性、复杂成员和关系的类型)来工作。 (2)应用程序不再对特定的数据引擎或存储架构具有硬编码依赖性。 (3)可以在不更改应用程序代码的情况下更改概念模型与特定于存储的架构之间的映射。 (4)开发人员可以使用可映射到各种存储架构(可能在不同的数据库管理系统中实现)的一致的应用程序对象模型。 (5)多个概念模型可以映射到同一个存储架构。,24,12.2.2 实体框架开发模式,25,12.2.2 实体框架开发模式,1数据库优先(Database First) 数据库优先(Database First)是指先创建数据库,然后再根据数据库生成对应的实体数据模型(.edmx文件) 2模型优先(Mod

12、el First) 模型优先(Model First)是指先利用开发工具提供的模板创建实体数据模型(.edmx文件),然后再根据实体数据模型生成数据库 3代码优先(Code First) 代码优先(Code First)是指先编写数据模型代码,然后再根据代码(classes)生成数据库;或者先编写创建数据库的代码,然后再从数据库用代码生成实体数据模型。,26,12.2.3 从数据库创建实体数据模型,【例12-2】使用“实体数据模型”模板生成MyDbModel.edmx文件,实现MyDbModel概念模型和MyDb.mdf数据库(表、视图以及存储过程)之间的映射。,27,12.2.3 从数据库创

13、建实体数据模型,【例12-2】【从数据库生成】,28,12.2.3 从数据库创建实体数据模型,【例12-2】选择数据连接,29,12.2.3 从数据库创建实体数据模型,【例12-2】选择数据对象,30,12.2.3 从数据库创建实体数据模型,【例12-2】生成的实体数据模型,31,12.2.3 从数据库创建实体数据模型,【例12-2】设置删除时的关联操作,32,12.3 使用LINQ to Entities访问实体对象,12.3.1 创建实体框架上下文(DbContext)实例 12.3.2 加载相关对象 12.3.3 查询数据 12.3.4 修改数据 12.3.5 添加或删除数据,33,12

14、.3.1 创建实体框架上下文(DbContext)实例,1在页面或窗口中只创建一个实体框架上下文实例 2使用using语句实例化实体框架上下文 using(var context = new MyDbEntities() /语句块 3通过实体框架上下文实例( DbContext类)操作数据 Database属性:该属性返回数据库实例,利用它可检查数据库是否存在、以及创建和删除数据库。 SaveChanges方法:将更改保存到数据库。,34,12.3.2 加载相关对象,1使用LINQ to Entities加载对象 这种方式称为延迟加载(Lazy Loading),即先利用LINQ to Ent

15、ities定义查询语句,然后再通过foreach或者通过数据绑定获取查询结果时才将数据加载到对象中。 2使用Load方法加载对象 这种方式称为显式加载,即通过Load方法将数据加载到实体中。,35,12.3.2 加载相关对象,【例12-3】显示成绩大于等于60的所有学生信息,36,12.3.3 查询数据,【例12-4】显示学生信息,并将所在学院编码显示为实际的名称,37,12.3.3 查询数据,【例12-5】统计所有姓王的人数以及这些学生的合计成绩,38,12.3.3 查询数据,【例12-6】显示学生学号、姓名及其家庭成员信息,39,12.3.4 修改数据,第一种办法是使用实体框架和LINQ

16、to Entities修改数据,即先利用查询得到要修改的实体对象,修改后再调用实体对象上下文的SaveChanges方法将其保存到数据库中,这是建议的修改办法。 第二种办法是通过MyDbEntities对象(从DbContext继承的实体数据模型上下文)的Dababase属性调用ExecuteSqlCommand方法,在该方法中直接传递要执行的SQL语句(修改、添加、删除等操作)。但是由于传递SQL语句只有在执行时才能发现SQL语句是否有语法错误,因此一般不使用这种办法。,40,12.3.4 修改数据,【例12-7】将张三玉的成绩增加10分,41,12.3.5 添加或删除数据,添加或删除数据的办法也是直接对实体对象进行操作,操作完成后再调用实体对象上下文的SaveChanges方法将其保存到数据库中。 通过MyDbEntities对象的Dababase属性调用ExecuteSqlCommand方法,在该方法中直接传递要

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号