欢迎来到天天文库
浏览记录
ID:50308159
大小:526.50 KB
页数:36页
时间:2020-03-07
《Web程序设计——ASP.NET 第2版 教学课件 作者 陈冠军 马翠翠 第10章 强大的LINQ查询.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第10章强大的LINQ查询LINQ语言以前曾说是替代SQL语言的一种更快捷有效的查询语言。微软对LINQ给予厚望,在ASP.NET的新特性中,LINQ相当重要,可以说是重中之重,所以本书特列出一章进行讲解。认识LINQ10.1认识LINQtoDataSet10.3LINQtoXML10.5LINQ语法基础10.2认识LINQtoSQL10.410.1认识LINQWebService技术允许网络上的所有系统进行交互,属于跨平台的应用。随着技术的发展,一个Web服务可以包含额外的指定功能,并且可以在多个B2B应用中协作通信。LINQ带来
2、很多开发上的便利。首先,它可以利用VS这个强大的IDE,来进行SQL语句编写时,可以有智能感应功能,这比起在SQLServer中使用用查询分析器写SQL语句就方便多了,同时它可以把数据当成一个对象来操作。图10-1LINQ的组成10.2LINQ语法基础LINQ使查询成为了.NET中一种编程概念,被查询的数据可以是XML(LINQToXML)、Databases(LINQToSQL、LINQToDataset、LINQToEntities)和对象(LINQToObjects)。LINQ也是可扩展的,允许建立自定义的LINQ数据提供者。
3、varreault=FromsinStudentsWheres.Name=”wangyuanfeng”Selectnew{s.Name,s.Age,s.Language};该语句等价于下面的语句:varreault=Students.Where(s=>s.Name==”wangyuanfeng”).Select(s.=>new{s.Name,.Age,s.Language});10.2.1局部变量varreault”声明一个局部变量,它的具体类型是通过初始化表达式来推断,这点是通过var关键词完成的。可以写出如下的代码:varnum
4、=50;varstr="simplestring";10.2.2扩展方法Where、Select”等都使用了扩展方法,其可以扩展一个已存在的类型,增加它的方法,而无需继承它或者重新编译。假设想要验证一个string是不是合法的Email地址,可以这样做:publicstaticclassMyExtensions{publicstaticboolIsValidEmailAddress(thisstrings){Regexregex=newRegex(@"^[w-.]+@([w-]+.)+[w-]{2,4}$");returnregex
5、.IsMatch(s);}}以上代码定义了一个带有静态方法的静态类。注意,这个静态方法在参数类型string前面有一个this关键词,将会告诉编译器这个特殊的扩展方法会增加给string类型的对象。于是就可以在string中调用这个方法:usingMyExtensions;stringemail=Request.QueryString["email"];if(email.IsValidEmailAddress()){……}10.2.3Lambda表达式s=>s.Name==”wangyuanfeng”以上代码使用了Lambda表达式
6、,它提供了一个更简洁的语法来写匿名方法。每一个Lambda表达式就是一个隐式类型的参数列表,然后是一个“=>”符号,最后是一个表达式或者一个语句块。使用SOAP与Web服务方法进行通信遵循标准格式。此格式的一部分是在XML文档中编码的数据。XML文档包含一个Envelope根元素,该元素又由必需的Body元素和可选的Header元素构成。10.2.4匿名类型new{}”使用了匿名类型,为了讲解匿名类型,这种语法可以定义内嵌的类型,而不需要显式地定义一个类型。如果没有定义Point类,只使用一个类型是匿名的Point对象,则可以这样编
7、写:varp=new{a=1,b=4};10.3认识LINQtoDataSetDataSet是ADO.NET中使用频率最高的组件之一,但DataSet也限制了查询功能。通过使用可用于许多其他数据源的相同查询功能,LINQtoDataSet可将更丰富的查询功能应用于同DataSet的交互中。通过使用LINQtoDataSet,可以更快更容易地查询在DataSet对象中缓存的数据。10.3.1对DataSet对象使用LINQ查询对DataSet对象使用LINQ查询时,并不是对自定义类型的枚举所进行的查询,而是查询DataRow对象的枚举
8、:varquery=frompinEmployees.AsEnumerable()selectp;然后可以通过使用foreach语句来遍历查询后所返回的可枚举对象:foreach(DataRowpinquery){//格式化输出Res
此文档下载收益归作者所有