欢迎来到天天文库
浏览记录
ID:50018461
大小:744.00 KB
页数:31页
时间:2020-03-07
《ASP.NET 3.5动态网站开发基础教程(C# 2008篇) 教学课件 作者 978-7-302-22793-9chap08.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章LINQ8.1LINQ介绍LINQ是LanguageIntegratedQuery的简称,它是集成在.NET编程语言中的一种特性,已成为编程语言的一个组成部分。LINQ技术采用类似于SQL语句的句法,它的句法结构是以from开始,结束于select或group子句。开头的from子句可以跟随0个或者更多个from或where子句。每个from子句都是一个产生器,它引入了一个迭代变量在序列上搜索;每个where子句是一个过滤器,它从结果中排除一些项。最后的select或group子句指定了依据迭代变量得出的结果的外形。8.1LINQ介绍LINQ是一系列技术,包括
2、LINQ、DLINQ、XLINQ等。下图描述了LINQ技术的体系结构。8.2C#中的LINQ入门“查询”是一组指令,这些指令描述如何从一个或多个给定数据源检索数据,以及返回的数据应该使用的格式和组织形式。LINQ的查询操作通常由以下三个不同的操作组成:(1)获得数据源。(2)创建查询。(3)执行查询。8.2.1LINQ查询8.2C#中的LINQ入门执行LINQ查询的过程如图所示。8.2.1LINQ查询8.2C#中的LINQ入门LINQ查询基于泛型类型,LINQ查询变量的类型为IEnumerable<(Of<(T>)>)或派生类型,如IQueryable<(Of<(T
3、>)>)。当看到类型为IEnumerable的查询变量时,这意味着在执行该查询时,该查询将生成包含零个或多个Customer对象的序列。为了避免使用泛型语法,我们可以使用匿名类型来声明查询,即使用var关键字来声明查询。var关键字指示编译器通过查看在from子句中指定的数据来推断查询变量的类型。8.2.2LINQ和泛型8.2C#中的LINQ入门查询表达式使用C#3.0中引入的声明性查询语法编写。通过使用查询语法,开发人员可以使用最少的代码对数据源执行复杂的筛选、排序和分组操作,也可以查询和转换SQL数据库、ADO.NET数据集、XML文档和流以
4、及.NET集合中的数据。查询表达式必须以from子句开头,并且必须以select或group子句结尾。在第一个from子句和最后一个select或group子句之间,查询表达式可以包含一个或多个下列可选子句:where、orderby、join、let,甚至可以包括附加的from子句。还可以使用into关键字使join或group子句的结果能够充当同一查询表达式中附加查询子句的源。8.2.3查询表达式8.2C#中的LINQ入门应用实例:从国家集合中查找面积大于500万平方公里的国家。8.2.3查询表达式核心代码:…IEnumerablecountry
5、Query=fromcincountrieswherec.area>500orderbyc.areadescendingselectc.name;…8.2C#中的LINQ入门C#3.0的一些新特性是实现LINQ实现的基础,这些新特性包括:查询表达式隐式类型对象和集合初始化匿名类型扩展方法Lambda表达式自动实现的属性8.2.4LINQ实现的基础8.3LINQtoADO.NET在LINQTOSQL中,关系数据库的数据模型映射为编程语言表示的对象模型。当应用程序运行时,LINQTOSQL会将对象模型中的语言集成查询转换为SQL,然后将它们发送到数据库进行执行。当数据库
6、返回结果时,LINQTOSQL会将它们再次转换为编程语言处理的对象。LINQTOSQL的使用主要可以分为两大步骤:(1)创建对象模型(2)使用对象模型8.3.1LINQTOSQL对象模型是关系数据库在编程语言中表示的数据模型,对对象模型的操作就是对关系数据库的操作。创建对象模型,就是基于关系数据库来创建这些LINQTOSQL对象模型中最基本的元素。创建对象模型方法有三种:(1)使用对象关系设计器,对象关系设计器提供了用于从现有数据库创建对象模型的丰富用户界面,它包含在VS2008中之中,最适合小型或中型数据库。(2)使用SQLMetal代码生成工具,这个工具适合大型
7、数据库的开发,因此对于普通读者来说,这种方法就不常用了。(3)直接编写创建对象的代码。8.3LINQtoADO.NET8.3.2对象模型和对象模型的创建使用对象关系设计器创建对象模型的界面如图所示。8.3LINQtoADO.NET8.3.2对象模型和对象模型的创建8.3LINQtoADO.NETLINQTOSQL查询数据库的过程如图所示。8.3.3查询数据库LINQTOSQL的查询过程8.3LINQtoADO.NET应用实例:使用LINQ查询数据库,并把数据在网页中显示8.3.3查询数据库核心代码:…ReviewsDataContextdata=newRevie
此文档下载收益归作者所有