ASP.NET 4.0基础教程 教学课件 ppt 作者 978-7-302-28929-6 chapter11

上传人:E**** 文档编号:89337613 上传时间:2019-05-23 格式:PPT 页数:26 大小:850KB
返回 下载 相关 举报
ASP.NET 4.0基础教程 教学课件 ppt 作者  978-7-302-28929-6 chapter11_第1页
第1页 / 共26页
ASP.NET 4.0基础教程 教学课件 ppt 作者  978-7-302-28929-6 chapter11_第2页
第2页 / 共26页
ASP.NET 4.0基础教程 教学课件 ppt 作者  978-7-302-28929-6 chapter11_第3页
第3页 / 共26页
ASP.NET 4.0基础教程 教学课件 ppt 作者  978-7-302-28929-6 chapter11_第4页
第4页 / 共26页
ASP.NET 4.0基础教程 教学课件 ppt 作者  978-7-302-28929-6 chapter11_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《ASP.NET 4.0基础教程 教学课件 ppt 作者 978-7-302-28929-6 chapter11》由会员分享,可在线阅读,更多相关《ASP.NET 4.0基础教程 教学课件 ppt 作者 978-7-302-28929-6 chapter11(26页珍藏版)》请在金锄头文库上搜索。

1、重点内容: LINQ概述 基于C#的LINQ LINQ到ADO.NET,第11章 LINQ技术,一、LINQ概述,LINQ是Language Integrated Qyery的缩写,中文名字是语言集成查询它提供给程序员一个统一的编程概念和语法,程序员不需要关心将要访问的是关系数据库还是XML数据,或是远程的对象,它都采用同样的访问方式。 LINQ是一系列技术,包括LINQ、DLINQ、XLINQ等。其中LINQ到对象是对内存进行操作,LINQ到SQL是对数据库的操作,LINQ到XML是对XML数据进行操作。下图描述了LINQ技术的体系结构。,一、LINQ概述,LINQ技术采用类似于SQL语句的

2、句法,它的句法结构是以from开始,结束于select或group子句。开头的from子句可以跟随0个或者更多个from或where子句。每个from子句都是一个产生器,它引入了一个迭代变量在序列上搜索;每个where子句是一个过滤器,它从结果中排除一些项。最后的select或group子句指定了依据迭代变量得出的结果的外形。select或group子句前面可有一个orderby子句,它指明返回结果的顺序。最后into子句可以通过把一条查询语句的结果作为产生器插进子序列查询中的方式来拼接查询。 例如程序清单:从数组中查询到符合条件的字符串 string aBunchOfWords = “One

3、“,“Two“, “Hello“, “World“, “Four“, “Five“; var result = from s in aBunchOfWords / 从 aBunchOfWords数组中查询字符串4. where s.Length = 5 / 条件是字符串长度是5 select s; / 返回查询结果 foreach (var s in result)/输出结果 Response.Write(s); ,二、基于C#的LINQ,1、LINQ查询介绍,LINQ的查询操作通常由以下三个不同的操作组成: (1) 获得数据源。 (2) 创建查询。 (3) 执行查询。 右图展示了完整的查询操

4、作 程序清单演示了查询操作的三个部分: string aBunchOfWords = “One“,“Two“, “Hello“, “World“, “Four“, “Five“; var result = from s in aBunchOfWords / 从 aBunchOfWords数组中查询字符串 where s.Length = 5 / 条件是字符串长度是5 select s; / 返回查询结果 /输出结果 foreach (var s in result) Response.Write(s); ,二、基于C#的LINQ,2、基本的查询操作,(1) 获取数据源 在LINQ查询中,第一步

5、是指定数据源,通过使用from子句来引入数据源和范围变量,例如程序清单: var queryAllCustomers = from cust in customers select cust;,二、基于C#的LINQ,2、基本的查询操作,(2) 筛选 最常用的查询操作是应用布尔表达式形式的筛选器。此筛选器使查询只返回那些表达式结果为true的元素。使用where子句生成结果。实际上,筛选器指定从源序列中排除哪些元素,例如程序清单: var queryLondonCustomers = from cust in customers where cust.City = “London“ selec

6、t cust;,二、基于C#的LINQ,2、基本的查询操作,(3) 排序 使用orderby子句可以很方便地将返回的数据进行排序。orderby子句将使返回的序列中的元素按照被排序的类型的默认比较器进行排序,例如程序清单: var queryLondonCustomers3 = from cust in customers where cust.City = “London“ orderby cust.Name ascending select cust;,二、基于C#的LINQ,2、基本的查询操作,(4) 分组 使用group子句,可以按指定的键对结果结果进行分组,例如程序清单: /按Cit

7、y进行分组 var queryCustomersByCity = from cust in customers group cust by cust.City; foreach (var customerGroup in queryCustomersByCity) Console.WriteLine(customerGroup.Key); foreach (Customer customer in customerGroup) Console.WriteLine(“ 0“, customer.Name); ,三、LINQ到ADO.NET,1、LINQ到SQL基础,通过使用LINQ到SQL,可以

8、使用LINQ技术像访问内存中的集合一样访问SQL数据库,使用LINQ到SQL可以完成使用T-SQL可以执行几乎所有功能,LINQ到SQL可以完成的常用功能包括: 选择 插入 更新 删除 LINQ到SQL的使用主要可以分为两大步骤: 第一个步骤是创建对象模型。要实现LINQ到SQL,首先必须根据现有关系数据库的元数据创建对象模型。对象模型就是按照开发人员所用的编程语言来表示的数据库,有了这个用当前开发表示数据库的对象模型,下面才能创建查询语句以操作数据库。关于如何创建对象模型,在后面的章节会详细介绍。,三、LINQ到ADO.NET,1、LINQ到SQL基础,第二个步骤是使用对象模型。在第一步创建

9、了对象模型后,就可以在该模型中描述信息请求和操作数据了。下面是使用已创建的对象模型的典型步骤: (1) 创建查询以从数据库中检索信息。 (2) 重写Insert、Update和Delete的默认行为。 (3) 设置适当的选项以检测和报告并发冲突。 (4) 建立继承层次结构。 (5) 提供合适的用户界面。 (6) 调试并测试应用程序。,三、LINQ到ADO.NET,2、对象模型和创建,对象模型是在关系数据库在编程语言中表示的数据模型,对对象模型的操作操作就是对关系数据库的操作。下表列举了LINQ到SQL对象模型中最基本的元素及其与关系数据库模型中的元素的关系。,三、LINQ到ADO.NET,2、

10、对象模型和创建,创建对象模型,就是基于关系数据库来创建这些LINQ到SQL对象模型中最基本的元素。 创建对象模型方法有三种: (1) 使用对象关系设计器,对象关系设计器提供了用于从现有数据库创建对象模型的丰富用户界面,它包含在VS2008中之中,最适合小型或中型数据库。 (2) 使用SQLMetal代码生成工具,这个工具适合大型数据库的开发,因此对于普通读者来说,这种方法就不常用了。 (3) 直接编写创建对象的代码。,三、LINQ到ADO.NET,2、对象模型和创建,强类型DataContext对应于类DataContext,它表示LINQ到SQL框架的主入口点,充当SQLServer数据库与

11、映射到数据库的LINQ到SQL实体类之间管道。DataContext 类包含用于连接数据库以及操作数据库数据的连接字符串信息和方法。默认情况下,DataContext类包含多个可以调用的方法,例如用于将已更新数据从LINQ到SQL类发送到数据库的SubmitChanges方法。还可以创建其他映射到存储过程和函数的DataContext方法。也就是说,调用这些自定义方法将运行数据库中DataContext方法所映射到的存储过程或函数。和可以添加方法对任何类进行扩展一样,也可以将新方法添加到DataContext类。,三、LINQ到ADO.NET,2、对象模型和创建,类DataContext的属性

12、 方法,三、LINQ到ADO.NET,2、对象模型和创建,创建对象模型的示例: (1) 在解决方案chap11中新建一个ASP.NET应用程序项目11-1。 (2) 在“解决方案资源管理器”窗口中,右键单击项目11-1,在弹出的菜单中选择“添加”|“新建项”命令,在弹出的“添加新项”对话框里选择“LINQ to SQL类”模板,然后单击“添加”按钮,这样就会在项目11-1下添加一个名为DataClasses1.dbml的文件,这个文件是中间数据库标记语言文件,它将提供对象关系设计器的界面。 (3) 打开DataClasses1.dbml,就可看到对象关系设计器的界面。在这个界面中,可以通过拖拽

13、方式来定义与数据库相对应的实体和关系。 (4) 打开“服务器资源管理器”窗口,建立可以使用的数据库连接(这时,SQLServer2005服务需要打开),从数据库BookSample(数据库在前面的章节中已经创建)中,把表Students(在前面的章节中已经创建)拖拽到对象关系设计器的界面的界面上,这时就会生成一个实体类,该类包含了与表Students的字段对应的属性。把实体类的名称修改为Student,表示一个学生。 (5) 打开文件DataClasses1.disigner.cs,该文件包含LINQ到SQL实体类以及自动生成的强类型DataClasses1DataContext的定义。,三、

14、LINQ到ADO.NET,3、查询数据库,LINQ到SQL会将编写的查询转换成等效的SQL语句,然后把它们发送到服务器进行处理。具体来说,应用程序将使用LINQ到SQL API来请求查询执行,LINQ到SQL提供程序随后会将查询转换成SQL文本,并委托ADO提供程序执行。ADO提供程序将查询结果作为DataReader返回,而LINQ到SQL提供程序将ADO结果转换成用户对象的IQueryable集合。下图描绘了LINQ到SQL的查询过程。,三、LINQ到ADO.NET,3、查询数据库,在前面创建了一个名为Student的实体类,程序清单就是从其中执行查询的代码: DataClasses1Da

15、taContext data = new DataClasses1DataContext(); var StudentsQuery = from student in data.Student select student; GridView1.DataSource = StudentsQuery; this.GridView1.DataBind();,三、LINQ到ADO.NET,4、更新数据库,(1) 插入操作 向数据库插入行的操作步骤如下: 创建一个包含要提交到列数据的新对象。 将这个新对象添加到与数据库中目标表关联的LINQ到SQL Table集合。 将更改提交到数据库。 程序清单将利

16、用向该实体类的对象插入一条数据: DataClasses1DataContext data = new DataClasses1DataContext(); Student stu = new Student(); stu.StuName = “王大力“; stu.Phone = “02178568909“; stu.Address = “陆家嘴“; stu.City = “上海“; stu.State = “中国“; data.Student.InsertOnSubmit(stu); try data.SubmitChanges(); catch (Exception ee) / ,三、LINQ到ADO.NET,4、更新数据库,(2)更新操作 更新数据库中的行的操作步骤如下: 查询数据库中要更新的行。 对得到的LINQ到SQL对象中成员值进行所需要的更改。 将更改提交到数据库。 将通过实体类Student将数据库中表Stude

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

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

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