C#程序设计教程课件作者刘瑞新第12章节LinqtoSQL数据库操作

上传人:E**** 文档编号:89085811 上传时间:2019-05-17 格式:PPT 页数:19 大小:259KB
返回 下载 相关 举报
C#程序设计教程课件作者刘瑞新第12章节LinqtoSQL数据库操作_第1页
第1页 / 共19页
C#程序设计教程课件作者刘瑞新第12章节LinqtoSQL数据库操作_第2页
第2页 / 共19页
C#程序设计教程课件作者刘瑞新第12章节LinqtoSQL数据库操作_第3页
第3页 / 共19页
C#程序设计教程课件作者刘瑞新第12章节LinqtoSQL数据库操作_第4页
第4页 / 共19页
C#程序设计教程课件作者刘瑞新第12章节LinqtoSQL数据库操作_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《C#程序设计教程课件作者刘瑞新第12章节LinqtoSQL数据库操作》由会员分享,可在线阅读,更多相关《C#程序设计教程课件作者刘瑞新第12章节LinqtoSQL数据库操作(19页珍藏版)》请在金锄头文库上搜索。

1、第12章 LINQ to SQL数据库操作,本章讲述的主要内容 12.1 LINQ的概念 12.2 使用LINQ查询 12.3 对象关系模型与O/R设计器 12.4 使用LINQ to SQL操作数据库,12.1 LINQ的概念,12.1.1 LINQ的构成,12.1 LINQ的概念,12.1.2 与LINQ相关的几个概念 1. 对象初始化器 在不使用对象初始化器时,为对象的属性赋值需用如下所示的语句: Students stu = new Students();stu.Name = “zhangsan“; stu.Age = 20; 若使用对象初始化器,则可在初始化对象时直接为对象的属性赋值

2、: Students stu = new Students() StuName = “zhangsan“, StuAge = 20; 在使用对象初始化器时,语句中的小括号可以省略: Students stu = new Students StuName = “zhangsan“, StuAge = 20;,12.1 LINQ的概念,12.1.2 与LINQ相关的几个概念 2. 匿名类型 “匿名类型”也称为“隐式类型”或“推断类型”,如果在程序中需要使用到临时类型,而又不希望去创建相应的类时,可以考虑使用匿名类型。 匿名类型使用var关键字进行声明,例如: /使用对象初始化器直接初始化匿名类型对

3、象 var stu = new StuName = “zhangsan“, StuAge = 20;,12.1 LINQ的概念,12.1.2 与LINQ相关的几个概念 3. 扩展方法 使用扩展方法可以为一些现有的类增加某种特定的功能。也就是向一个现有的类中添加新的静态方法(注意必须是静态的)。创建扩展方法的语法格式如下所示: public static class 静态类名称 public static 返回值类型 方法名称(this 作用类型 形参1 , 形参2) 扩展方法的方法体语句 ,12.1 LINQ的概念,12.1.2 与LINQ相关的几个概念 4. Lambda表达式 Lambda

4、表达式是.NET Framework 3.5的一个新特性,它提供了一种极为简洁的定义方法的方式。Lambda表达式是从“委托”和“匿名方法”过渡而来的。 (1) 委托 (2) 匿名方法 (3) 过渡到Lambda表达式 Lambda表达式的基本形式为: (参数列表) = 表达式或语句块; 【演练12-2】,12.2 使用LINQ查询,12.2.1 使用LINQ查询表达式 每个查询关键字对应一个LINQ查询子句,各子句都具有明确的功能,将这些子句组合到一起就构成了一个完整且具有特定功能的的LINQ查询。常用的LINQ查询子句及其功能说明见表12-1。,12.2 使用LINQ查询,12.2.1 使

5、用LINQ查询表达式 1. 最基本的LINQ查询表达式 所谓最基本的LINQ查询表达式是指表达式中仅包含一个from子句和一个select子句。其语法格式为: from 变量 in 数据源 select 表达式; from子句使用“变量”逐个读取“数据源”的各元素,而“表达式”用来对from子句中的“变量”进行某种计算以得到返回结果。 2. 使用where子句指定过滤条件 对数据源中的数据进行过滤是常见的应用,也是查询的最基本功能之一。在LINQ查询表达式中where子句的位置应在from子句之后,在select子句之前。其语法格式为: from 变量 in 数据源 where 条件表达式 s

6、elect 表达式;,12.2 使用LINQ查询,12.2.1 使用LINQ查询表达式 3. 使用orderby子句实现查询结果排序 对查询结果集中的元素进行排序是常见的辅助操作之一,orderby子句一般应放在where子句之后(如果有的话),放在select子句之前。使用orderby子句实现结果集排序的语法格式为: from 变量 in 数据源 orderby 排序表达式 排序方式 select 表达式; 其中:“排序表达式”是针对from子句中变量的表达式,可以就是变量本身或对变量进行运算的表达式。,12.2 使用LINQ查询,12.2.2 使用LINQ方法 使用前面介绍过的LINQ查

7、询表达式进行查询时,由于表达式语法上的限制一些复杂的查询很难实现。为解决这一问题LINQ还提供了一套通过使用C#代码编写的方法进行查询的方式。 1. 使用Where()方法 2. 使用Single()和SingleOrDefault()方法 3. 其它常用方法 Average()、Min()、Max()、Sum()、Skip(n)、SkipWhile(条件) Distinct()等。,12.3 对象关系模型与O/R设计器,12.3.1 了解对象关系模型 1. 对象模型的原理 下图所示的是LINQ to SQL对象模型的原理,从图中可以看到LINQ to SQL包含两个重要的组件,对象模型(Ob

8、ject Model)和运行时接口(Runtime)。前者为开发人员提供容易理解的基于编程语言的对象访问模式和开发接口,后者为对象模型和数据库管理系统提供映射功能。,12.3 对象关系模型与O/R设计器,12.3.1 了解对象关系模型 2. 对象模型的创建方法 通常,开发人员可以通过以下3种方式创建LINQ to SQL对象模型。 1) 使用对象关系设计器(O/R设计器):最适合中小型数据库应用程序开发。 2) 使用SQL Metal代码生成工具:SQL Metal代码生成工具是一个使用的命令行工具,它的功能与O/R设计器的功能基本相同,但SQL Metal更加灵活。由于SQL Metal是一

9、个命令行工具,没有图形化的操作界面,使用起来不是很方便。 3) 代码编辑器:开发人员可以在Visual Studio代码编辑窗口或其他代码编辑器中直接编写对象模型的代码。一般用来修改O/R设计器或SQL Metal生成的对象模型代码。,12.3 对象关系模型与O/R设计器,12.3.2 使用O/R设计器 在Visual Studio 2008及以上版本中,LINQ to SQL的所有功能都需要通过一个名为“DataContext”的类来实现,而O/R设计器就是专门用于创建使用LINQ to SQL所必须的DataContext类的一个工具。 当我们向Windows应用程序项目中添加一个“LIN

10、Q to SQL类”时,系统将自动打开O/R设计器,只需要将数据表、存储过程等从服务器资源管理器中拖动到O/R设计器中即可自动创建DataContext类。,12.3 对象关系模型与O/R设计器,12.3.3 了解DBML文件 下图所示的是将StuInfo表添加到O/R设计器后,使用Windows“记事本”程序打开DBML文件时看到的内容。,12.4 使用LINQ to SQL操作数据库,12.4.1 查询数据库记录 在使用LINQ to SQL进行数据库操作前,必须保证已正确的创建了DataContext类和数据表实体类(如本例由O/R设计器生成的DataClassesDataContext

11、类和StuInfo类)。 使用LINQ to SQL进行查询的基本操作步骤如下: 1) 创建DataContext类和数据表实体类,这一步一般可通过O/R设计器来完成。有关LINQ to SQL的其他操作这一步也是必须的,今后不再赘述。 2) 实例化DataContext类。 3) 使用LINQ to SQL查询语句或方法返回查询结果集。 4) 输出查询结果。,12.4 使用LINQ to SQL操作数据库,12.4.2 插入新记录 使用LINQ to SQL向数据表中插入一条记录的方法十分简单,在创建了DataContext类和数据表实体对象后,只要创建一个数据表对象的实例,并为该实例的各个

12、字段赋值,最后调用数据表对象的InsertOnSubmit()方法将数据表对象实例添加到表,最后再调用DataContext类对象的SubmitChanges()更新数据库即可。,12.4 使用LINQ to SQL操作数据库,12.4.3 修改记录 使用LINQ to SQL技术修改数据库记录的操作与添加新记录十分相似。在创建了DataContext类和数据表实体对象后,首先需要查询到希望修改的记录,而后为查询结果对象中的各个字段赋以新值,最后调用DataContext类对象的SubmitChanges()方法即可。,12.4 使用LINQ to SQL操作数据库,12.4.4 删除记录 使

13、用LINQ to SQL技术删除数据库记录的操作与更新记录十分相似。在创建了DataContext类和数据表实体对象后,首先需要查询到希望修改的记录,而后调用数据表实体对象的DeleteOnSubmit()方法,最后调用DataContext类对象的SubmitChanges()方法即可。,12.4 使用LINQ to SQL操作数据库,12.4.5 使用LINQ to SQL直接执行SQL语句 1. GetCommand()方法 GetCommand()方法用于提供有关由LINQ to SQL生成的SQL命令的信息。使用该方法可以帮助程序员了解LINQ to SQL在后台具体的执行情况,这对程序查错是很有帮助的。 2. ExecuteCommand()方法 DataContext类提供的ExecuteCommand()方法可用于直接对数据库执行一个没有返回值的SQL命令。注意,在书写SQL语句时表名称、字段名需要用方括号“”将其括起来。 3. ExecuteQuery()方法 DataContext类提供的ExecuteQuery()方法用于直接执行一个SQL查询,该方法返回一个IEnumerable类型的泛型集合。,

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

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

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