- 1、本文档共93页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
技术及编程1
LINQ从入门到精通 Web开发框架技术初级 天津理工大学华信软件学院 张一鸣 2011年6月24日 第一章 LINQ简介 2011年6月24日 本章主要内容 本章主要介绍LINQ的基本概念和组成,它的工作原理,以及几种不同的实现形式。 1.1 LINQ是什么 LINQ是一个把查询当作头等概念引入所有微软.NET语言的编程模型。但是,现有的编程语言完全支持LINQ还需要添加一些扩展内容。经过扩展,LINQ提供了一种简化和统一各种类型数据访问实现的方法。它可以很容易地利用几种现有的体系结构来访问数据,例如: RAD/原型 客户端/服务器 三层/多层体系结构 智能客户端 LINQ和.NET语言的关系 .NET各个版本的关系 LINQ的发展经历 1.2 为什么需要LINQ 原来的SQL只能访问包含在结构化的关系型数据库中的数据。但是现实世界中,数据可以存储在各种各样的数据源中,比如数组、对象图、XML文档、数据库、文本文件、注册表项、网页、电子邮件信息、简单对象访问协议(SOA P)消息内容、微软的Excel电子表等,特别是大量非结构化数据,都是用SQL无法访问的。 例子1.1 一个简单的LINQ查询程序 using System; using System.Linq; string [ ] greetings = { “hello world”, “hello LINQ”, “hello Apress” }; var items = from s in greetings where s.EndsWith (“LINQ”); select s; foreach ( var item in items ) Console.WriteLine ( item ); 在vs2008中创建这个工程,编辑程序、编译、链接,执行,在具有三个元素的字符串数组执行LINQ 查询。显示结果为: 访问数据源的数据模型 LINQ技术的独特方法 LINQ在总结了以前的经验后,没有走统一各种不同的数据模型的结构从而建立一个“通用”模型的方法,而是利用不同数据模型中操作具有的通用功能来实现这个目的。 换句话说,使用LINQ时,仍然维持现有的各种数据结构,比如类或表,并且不管这些数据类型表示何种物理意义,但是都用统一的查询语法对异种数据进行查询。例如对于内存中的数组和数据库中的关系表中的数据,使用LINQ就可以对他们使用相同的查询语法。 例子1.2 一个简单LINQ查询 设计一个LINQ查询,在Customers数据表中有哪些信誉好的足球投注网站所属国籍是意大利的那些公司的名称,代码如下所示: var query = from c in Customers where c.Country == “Italy” select c.CompanyName; 该查询返回的结果是一个字符串列表,可以用C#语句按照枚举的方式显示这些返回值,即: foreach ( string name in query ) { Console.WriteLine ( name ); } 简单LINQ查询的说明 var、query和foreach都是标准的C#3.0的语句,分别表示执行的LINQ查询和对于对象的循环控制。在其中添加一个名为Search.ascx的文件 c、Customers是已定义的实体类。 from、where、select都是LINQ的关键字,分别表示指定数据源、查找条件和确定要查找的数据内容。 关于Customers的讨论 LINQ构件块、LINQ提供器和相应数据源 LONQ查询的处理过程 使用LINQ编写查询代码时,如下例: C#编译器会生成下列代码: LINQ对宿主语言的扩展 从上面的例子可见,首先在Customers上调用Where,然后在Where返回的对象上调用OrderBy进行排序,最后在OrderBy返回的对象上调用Select。这是由使用的宿主语言(C#)中的扩展方法(LINQ)在管理这种查询行为。 该例子中的查询调用的Where、OrderBy、Select方法的实现形式,取决于Customers的类型(即前述的对象集、数据表、关系型数据库中物理表的实体类、概念模型并被映射到关系型数据库中的实体类),同时也取决于相关的using语句指定的命名空间。扩展方法是LINQ使用的基础语法特征,LINQ就是采用这种相同的语法来操作不同的数据源。 LINQ对于数据的适时操作 LINQ查询只有在需要使用其返回结果时才会执行,否则它不会被执行。例如,下面的例子中,仅当执行foreach循环语句时才执行LINQ访问: var query = from c in Customers
文档评论(0)