预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

··第20章ASP.NET3.5与LINQ对于长期发展的面向对象编程模型而言,其发展基本处于一个比较稳定的阶段,可是面向对象的编程模型并没有解决数据的访问和整合的复杂问题。对于数据库的访问和XML的访问,面向对象方法论无法从根本意义上解决其复杂度和难度,而LINQ提供了一种更好的解决方案。20.1什么是LINQ任何技术都不可能凭空搭建起来,为了解决工业生产生中某个实际问题,当现有的技术已经无法很好的完成工业的要求,就会促发新技术的诞生。LINQ就是为了解决复杂的数据访问和整合而出现的一种新技术。20.1.1LINQ起源从传统的意义上来说,面向过程的编程模型在数据访问和整合的能力上有一定的限度。因为面向过程的编程方法不能很好的描述一个事务,必须通过不同函数之间的调用来描述一个现有的对象,而且面向过程的编程方法在代码复用性上比较低,所以当面向过程的编程语言需要对数据库进行访问时,就需要编写大量的额外代码。虽然面向过程的编程模型可以通过良好的函数引用和编码提高复用性,但是并没有解决面向过程编程模型中对数据的访问和整合的复杂度。随着计算机和编程模型的发展,人们发现了另一个更好的编程模型,这就是现在最常用的面向对象编程模型。相比面向过程的编程模型而言,面向对象的编程模型能够更好的描述一个事务,事务能够通过面向对象中的属性、字段和方法很好的模拟实际的事务,而面向对象编程模型中的派生、继承等特性同样能够极大的提高代码的复用性,提升开发效率。但是面向对象的编程模型同样没有解决复杂的数据库访问和数据整合,开发人员还是需要通过繁琐的手段进行数据库的访问和数据整合。在.NET3.0框架或更早,LINQ就已经被提及,LINQ是一种能够快速对大部分数据源进行访问和数据整合的一种技术,LINQ解决了复杂的数据应用中开发人员需要面对和解决的问题。虽然面向对象的数据库已经在几年前就被提及并且各大IT公司投入了对面向对象的数据库的研发,但是传统的关系型数据库在当今还是应用最为广泛的。关系型数据库中将数据整合和呈现成为一张张的表的形式,开发人员和数据库管理人员能够通过SQL管理工具提供的SQL语句进行数据的查询和整理。但是在开发过程中,开发人员不能够像使用SQL语句一样对数据集进行查询和处理。任何数据库中的数据都会以一种数据集的形式反馈给用户,这种数据集的形式可以反映成为数学中的集合的概念,其实在数据库早期的发展中,数据是以集合的概念呈现的,而随着数据库的发展,集合的概念依旧是数据库最基本的概念。正式因为如此,开发人员不能够方便的是从一个集合中查询数据,这里不仅仅是一个数据库,还包括其他能够以数据库形式存在的文件,例如ACCESS、TXT等,当在开发中需要使用到多个数据库或者数据描述形式的文件时,更多的情况是将这些数据填充到数据集中并通过遍历来访问数据,这样却造成了更多的数据访问问题和麻烦。LINQ能够很方便的进行数据的查询,使用LINQ对数据集进行查询的形式很像使用SQL语句对数据库中的表进行查询,而与之不同的是,LINQ能够面向更多的对象,这些对象包括数组、集合以及数据库,LINQ对数组的查询示例代码如下所示。staticvoidMain(string[]args){string[]str={"你好","今天的","天气真不错","生活很阳光"};//创建数组vars=fromninstrselectn;//编写查询字串foreach(varnins)//遍历查询对象{Console.WriteLine(n.ToString());//输出对象值}Console.ReadKey();//等待用户按键}上述代码对数组str进行了查询,这种方式很像SQL语句。的确LINQ的查询方式和SQL语句很像,其语法和基本内容都没有什么太大的差别,但是LINQ提供了更好的查询的解决方案。LINQ能够查询更多对象(例如上述代码中的数组)而无法使用SQL语句进行查询。另外,LINQ查询语句还能够使用WHERE等关键字进行查询,示例代码如下所示。staticvoidMain(string[]args){string[]