2022年完整word版,ASP.NET开发大全第20章.ASP.NET3.5与LINQ .pdf





《2022年完整word版,ASP.NET开发大全第20章.ASP.NET3.5与LINQ .pdf》由会员分享,可在线阅读,更多相关《2022年完整word版,ASP.NET开发大全第20章.ASP.NET3.5与LINQ .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 20 章 ASP.NET 3.5 与 LINQ 对于长期发展的面向对象编程模型而言,其发展基本处于一个比较稳定的阶段,可是面向对象的编程模型并没有解决数据的访问和整合的复杂问题。对于数据库的访问和XML的访问,面向对象方法论无法从根本意义上解决其复杂度和难度,而LINQ 提供了一种更好的解决方案。20.1 什么是 LINQ 任何技术都不可能凭空搭建起来,为了解决工业生产生中某个实际问题,当现有的技术已经无法很好的完成工业的要求,就会促发新技术的诞生。LINQ就是为了解决复杂的数据访问和整合而出现的一种新技术。20.1.1 LINQ 起源从传统的意义上来说,面向过程的编程模型在数据访问和整合
2、的能力上有一定的限度。因为面向过程的编程方法不能很好的描述一个事务,必须通过不同函数之间的调用来描述一个现有的对象,而且面向过程的编程方法在代码复用性上比较低,所以当面向过程的编程语言需要对数据库进行访问时,就需要编写大量的额外代码。虽然面向过程的编程模型可以通过良好的函数引用和编码提高复用性,但是并没有解决面向过程编程模型中对数据的访问和整合的复杂度。随着计算机和编程模型的发展,人们发现了另一个更好的编程模型,这就是现在最常用的面向对象编程模型。相比面向过程的编程模型而言,面向对象的编程模型能够更好的描述一个事务,事务能够通过面向对象中的属性、字段和方法很好的模拟实际的事务,而面向对象编程模
3、型中的派生、继承等特性同样能够极大的提高代码的复用性,提升开发效率。但是面向对象的编程模型同样没有解决复杂的数据库访问和数据整合,开发人员还是需要通过繁琐的手段进行数据库的访问和数据整合。在.NET 3.0 框架或更早, LINQ 就已经被提及, LINQ 是一种能够快速对大部分数据源进行访问和数据整合的一种技术,LINQ 解决了复杂的数据应用中开发人员需要面对和解决的问题。虽然面向对象的数据库已经在几年前就被提及并且各大IT 公司投入了对面向对象的数据库的研发,但是传统的关系型数据库在当今还是应用最为广泛的。关系型数据库中将数据整合和呈现成为一张张的表的形式, 开发人员和数据库管理人员能够通
4、过SQL 管理工具提供的SQL 语句进行数据的查询和整理。但是在开发过程中,开发人员不能够像使用SQL 语句一样对数据集进行查询和处理。任何数据库中的数据都会以一种数据集的形式反馈给用户,这种数据集的形式可以反映成为数学中的集合的概念,其实在数据库早期的发展中,数据是以集合的概念呈现的,而随着数据库的发展,集合的概念依旧是数据库最基本的概念。正式因为如此,开发人员不能够方便的是从一个集合中查询数据,这里不仅仅是一个数据库,还包括其他能够以数据库形式存在的文件,例如 ACCESS 、TXT 等,当在开发中需要使用到多个数据库或者数据描述形式的文件时,更多的情况是将这些数据填充到数据集中并通过遍历
5、来访问数据,这样却造成精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 18 页492 了更多的数据访问问题和麻烦。LINQ 能够很方便的进行数据的查询,使用LINQ 对数据集进行查询的形式很像使用SQL 语句对数据库中的表进行查询,而与之不同的是,LINQ 能够面向更多的对象,这些对象包括数组、集合以及数据库, LINQ 对数组的查询示例代码如下所示。static void Main(string args) string str = 你好 ,今天的 ,天气真不错 ,生活很阳光 ; /创建数组var s = from n in str
6、select n; /编写查询字串foreach (var n in s) /遍历查询对象 Console.WriteLine(n.ToString(); /输出对象值 Console.ReadKey(); /等待用户按键 上述代码对数组str 进行了查询, 这种方式很像SQL 语句。的确 LINQ 的查询方式和SQL 语句很像,其语法和基本内容都没有什么太大的差别,但是LINQ 提供了更好的查询的解决方案。LINQ 能够查询更多对象(例如上述代码中的数组)而无法使用SQL 语句进行查询。另外,LINQ 查询语句还能够使用WHERE 等关键字进行查询,示例代码如下所示。static void
7、Main(string args) string str = 你好 ,今天的 ,天气真不错 ,生活很阳光 ; /创建数组var s = from n in str where n.Length 3 select n; /使用条件查询foreach (var n in s) /遍历查询对象 Console.WriteLine(n.ToString(); /输出对象值 Console.ReadKey(); /等待用户按键 上述代码修改了LINQ 查询语句,为LINQ 查询语句增加了条件查询,该条件的意义为查询字符串长度大于3 的字符串,运行后如图20-1 所示。图 20-1 LINQ 查询语句从上
8、图可以看出,能够使用类似于SQL 语句的形式进行数据集的查询,很大程度上方便了开发人员对于数据库中数据的访问和整理。LINQ 可以使用条件语句进行筛选,并且能够使用 .NET 提供的语法进行判断,这样就简化了开发人员对于数据集中的数据的筛选。有关LINQ 的语句,会在后面的章节中详细的讲解。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 18 页493 20.1.2 LINQ 构架在.NET 3.5 中, LINQ ( Language Integrated Query)已经成为了编程语言的一部分,开发人员已经能够使用Visual St
9、udio 2008 创建使用LINQ 的应用程序。 LINQ 对基于 .NET 平台的编程语言提供了标准的查询操作。在.NET 3.5 中, LINQ 的基本构架如图20-2 所示。图 20-2 LINQ 基本构架如图 20-2 所示, LINQ 能够对不同的对象进行查询。在.NET 3.5 中,微软提供了不同的命名空间以支持不同的数据库配合LINQ 进行数据查询。 在 LINQ 框架中,处于最上方的就是LINQ 应用程序,LINQ应用程序基于.NET 框架而存在的,LINQ 能够支持C#、VB 等.NET 平台下的宿主语言进行LINQ 查询。在 LINQ 框架中, 还包括 Linq Enab
10、led ADO.NET层,该层提供了LINQ 查询操作并能够提供数据访问和整合功能。LINQ 包括五个部分, 这五个部分分别是LINQ to Objects 、LINQ to DataSet 、LINQ to SQL 、LINQ to Entities、 LINQ to XML, 在.NET 开发中最常用的是LINQ to SQL和 LINQ to XML, 本书也详细介绍LINQ的这两个部分。LINQ to SQL 提供了对SQL Server 中数据库的访问和整合功能,同时能够以对象的形式进行数据库管理,前面已经提到,现在的数据库依旧以关系型数据库为主,在面向对象开发过程中,很难通过对象的
11、方法描述数据库,而LINQ 提供了通过对象的形式对数据库进行描述。LINQ to XML 提供了对XML中数据集的访问和整合功能,LINQ to XML 使用 System.Xml.Linq 命名控件,为XML 操作提供了高效易用的方法。20.1.3 LINQ 与 Visual Studio 2008 新特性讲到 LINQ 就不得不讲解Visual Studio 2008 的新特性, LINQ 作为 Visual Studio 2008 中的一部分,Visual Studio 2008 为 LINQ 提供很好的编程环境,LINQ 也使用到了C#编程语言中的很多特性,以提高精选学习资料 - -
12、- - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 18 页494 开发人员的开发效率。Visual Studio 2008 重定向:使用 Visual Studio 2008 与 Visual Studio 2005 不同的是, Visual Studio 2008 支持多个版本 .NET 框架的共存, 在 Visual Studio 2008 中可以选择基于.NET 2.0 或.NET 3.X版本的框架来开发不同的应用程序,当选择不同的应用程序基础框架时,Visual Studio 2008能够智能的提供不同的命名空间。Visual Studio 2008
13、AJAX :在 ASP.NET 2.0 开发中, 需要使用ASP.NET AJAX 1.0作为 AJAX 开发必备的工具,在Visual Studio 2008 中已经集成了对AJAX 的支持,创建ASP.NET 3.5 应用程序已经能够非常方便的使用AJAX 功能。Visual Studio 2008 可视化操作: 在 Visual Studio 2008 中,微软提供了可视化操作,开发人员能够选择不同的视图进行页面分离形式的开发,在Visual Studio 2008 中开发人员可以选择视图,拆分,代码三种视图进行不同的开发体验。Visual Studio 2008 集成 LINQ : 这
14、是 Visual Studio 2008 中比较值得期待的功能,Visual Studio 2008将 LINQ 作为编程语言中的一部分,为开发人员提供了LINQ 开发的原生环境。在 LINQ 与 Visual Studio 2008 中, 开发人员最为期待的新特性还是Visual Studio 2008 对 LINQ 的原生支持, 使用 LINQ 能够快速的进行数据库的访问和整合,这样在一定的意义上降低了开发难度,LINQ在.NET Framework 3.5 中的位置如图20-3 所示。图 20-3 .NET 框架中的 LINQ 正如图 20-3 所示, .NET 2.0 后面几个版本的框
15、架都是基于.NET Framework 2.0 而存在的,在.NET Framework 3.0 中,微软已经增加了WPF,WCF, WF 等新特性以提供快速的面向服务的开发和完善的用户体验解决方案。而LINQ 是作为 .NET Framework 3.5 存在于 .NET Framework 中的,这也就是说只有在.NET Framework 3.5 框架中才能够使用LINQ 技术。由于 .NET Framework 3.5 版本的框架基于.NET Framework 3.0 版本,开发人员可以使用LINQ 特性进行分布式开发和面向服务的开发,这样就能够更近一步的提高代码的复用性和安全性。2
16、0.2 LINQ 与 Web 应用程序在 ASP.NET 应用程序开发中,常常需要涉及到数据的显式和整合,使用ASP.NET 2.0 中提供的控件能够编写用户控件,开发人员还能够选择开发自定义控件进行数据显示和整合,但是在数据显示和整精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 18 页495 合过程中, 开发人员往往需要大量的连接、关闭连接等操作, 而且传统的方法也破坏了面向对象的特性,使用 LINQ 能够方便的使用面向对象的方法进行数据库操作。20.2.1 创建使用 LINQ 的 Web 应用程序创建LINQ的 Web 应用程序非
17、常的容易,只要创建Web 应用程序时选择的平台是基于.NET Framework 3.5 的就能够创建使用LINQ 的 Web 应用程序,如图20-4 所示。图 20-4 选择 .NET Framework 3.5 当创建一个基于系统.NET Framework 3.5的应用程序,系统就能够自动为应用程序创建LINQ 所需要的命名空间,示例代码如下所示。using System.Xml.Linq; /使用 LINQ 命名空间using System.Linq; /使用 LINQ 命名空间上述命名空间提供了应用程序中使用LINQ 所需要的基础类和枚举,在ASP.NET 应用程序中就能够使用 LI
18、NQ 查询语句进行查询,示例代码如下所示。protected void Page_Load(object sender, EventArgs e) string str = 我爱 C#, 我喜欢 C#, 我做 C#开发 , 基于 .NET 平台 , LINQ 应用 ; /数据集var s = from n in str where n.Contains(C#) select n; /执行 LINQ 查询foreach (var t in s) /遍历对象 Response.Write(t.ToString() + ); /输出查询结果 上述代码在ASP.NET 页面中执行了一段LINQ 查询,
19、查询字符串中包含“C#”的字符串,运行后如图 20-5 所示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 18 页496 图 20-5 ASP.NET 执行 LINQ 查询在 ASP.NET 中能够使用LINQ 进行数据集的查询, Visual Studio 2008 已经将 LINQ 整合成为编程语言中的一部分,基于.NET Framework 3.5 的应用程序都可以使用LINQ 特性进行数据访问和整合。20.2.2 基本的 LINQ 数据查询使用 LINQ 能够对数据集进行查询,在 ASP.NET 中,可以创建一个新的LINQ
20、 数据库进行数据集查询,右击现有项目,单击【添加新项】选项,选择【LINQ to SQL 类】选项,如图20-6 所示。图 20-6 创建 LINQ to SQL 类创建一个 LINQ to SQL 类,能够映射一个数据库,实现数据对象的创建,如图20-7 所示。创建一个 LINQ to SQL 类后, 可以直接在服务资源管理器中拖动相应的表到LINQ to SQL 类文件中, 如图 20-8所示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 18 页497 图 20-7 服务资源管理器图 20-8 拖动一个表开发人员能够直接将服务资
21、源管理器中的表拖动到LINQ to SQL类中,在 LINQ to SQL类文件中就会呈现一个表的视图。在视图中,开发人员能够在视图中添加属性和关联,并且能够在LINQ to SQL类文件中可以设置多个表,进行可视化关联操作。创建一个 LINQ to SQL类文件后, LINQ to SQL 类就将数据进行对象化,这里的对象化就是以面向对象的思想针对一个数据集建立一个相应的类,开发人员能够使用LINQ to SQL创建的类进行数据库查询和整合操作,示例代码如下所示。protected void Page_Load(object sender, EventArgs e) MyDataDataCo
22、ntext data = new MyDataDataContext(); /使用 LINQ 类var s = from n in data.mynews where n.ID=1 select n; /执行查询foreach (var t in s) /遍历对象 Response.Write(t.TITLE.ToString() + ); /输出对象 上述创建了一个MyData.dbml 的 LINQ to SQL文件,开发人员能够直接使用该类的对象提供数据操作。上述代码使用了LINQ to SQL文件提供的类进行数据查询,LINQ 查询语句示例代码如下所示。var s = from n i
23、n data.mynews where n.ID=1 select n; /编写查询语句上述代码使用了LINQ 查询语句查询了一个mynews 表中 ID 为 1 的行,使用LINQ to SQL 文件提供的对象能够快速的进行数据集中对象的操作。创建一个MyData.dbml的 LINQ to SQL 文件,其中MyDataDataContext 为类的名称,该类提供LINQ to SQL操作方法,示例代码如下所示。MyDataDataContext data = new MyDataDataContext(); /使用 LINQ 类上述代码使用了LINQ to SQL文件提供的类创建了一个对
24、象data,data对象包含数据中表的集合,通过“ .”操作符可以选择相应的表,示例代码如下所示。data.mynews /选择相应表使用 LINQ 查询后运行结果如图20-9 所示。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 18 页498 图 20-9 LINQ 执行数据库查询使用 LINQ 技术能够方便的进行数据库查询和整合操作,LINQ 不仅能够实现类似SQL 语句的查询操作,还能够支持.NET 编程方法进行数据查询条件语句的编写。使用LINQ 技术进行数据查询的顺序如下所示:创建 LINQ to SQL文件:创建一个LIN
25、Q to SQL类文件进行数据集封装。拖动数据表:将数据表拖动到LINQ to SQL 类文件中,可以进行数据表的可视化操作。使用 LINQ to SQL类文件:使用LINQ to SQL类文件提供的数据集的封装进行数据操作。使用 LINQ to SQL 类文件能够极快的创建一个LINQ 到 SQL 数据库的映射并进行数据集对象的封装,开发人员能够使用面向对象的方法进行数据集操作并提供快速开发的解决方案。20.2.3 IEnumerable和 IEnumerable 接口IEnumerable 和 IEnumerable 接口在 .NET 中是非常重要的接口,它允许开发人员定义foreach
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年完整word版 ASP.NET开发大全第20章.ASP.NET3.5与LINQ 2022 完整 word ASP NET 开发 大全 20 NET3 LINQ

链接地址:https://www.taowenge.com/p-33338505.html
限制150内