




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 LINQ概述,本章简单介绍LINQ的概念、LINQ的设计目标以及LINQ的分类,通过3个使用LINQ的实例引领读者开始LINQ的学习。本章使用的实例代码运用了大量C# 3.0语言的新特性,如对象和集合初始化器以及扩展方法等。读者在学习本章内容时,可不必太在意这些细节,将学习重点放在对LINQ的整体把握方面。,章节内容,1.1 什么是LINQ 1.2 LINQ设计目标 1.3 LINQ的种类 1.4 LINQ应用实例,1.1 什么是LINQ,LINQ是Language Integrated Query的缩写,翻译成中文就是语言集成查询。LINQ是一系列的编程接口,借助于LINQ技术,可以
2、使用一种统一的方式查询各种不同类型的数据。LINQ是微软公司在Visual Studio 2008和.NET Framework 3.5版本中一项突破性的创新,它在对象领域和数据领域之间架起了一座桥梁。LINQ通过使用特定的语法,可以对数据库、对象以及XML等多种类型的数据进行查询操作。LINQ既可在新项目中使用,也可在现有项目中与非LINQ查询一起使用,唯一的要求是项目应面向.NET Framework 3.5版本。,1.2 LINQ的设计目标,LINQ采用一种开放性的设计架构,这种开放性不仅表现在其可以被多种.NET语言所支持,还表现在通过为不同类型的数据源开发相应的LINQ Provid
3、er,LINQ可以在各种类型的数据源之间提供一个统一的访问接口。,1.2 LINQ的设计目标,LINQ的设计模型图,1.3 LINQ的种类,LINQ to OBJECT LINQ to ADO.NET LINQ to XML,1.3.1 LINQ to OBJECT,LINQ to OBJECT是用来访问对象集合的编程接口,对象集合里面的元素之间可以具有层次结构。在.NET中支持列举操作的各种对象类型,基本上都可以使用LINQ to OBJECT来进行操作。例如,可以使用LINQ to OBJECT来对一个整数类型数组中所有元素进行排序,也可以在一个自定义类型的集合中找出符合某些条件的元素子集
4、合。,1.3.1 LINQ to OBJECT,下面的代码实现了将一个整数类型数组numbers中所有元素按照从小到大的顺序排列,并放入集合items中的逻辑。 /将一个整数类型数组numbers中所有元素按照从小到大的顺序排列,并放入集合items中 using System; using System.Collections.Generic; using System.Text; using System.Linq; namespace Sample public class Test ,1.3.1 LINQ to OBJECT,static void Main(string args)
5、/使用集合初始化器初始化整数类型数组numbers int numbers = 10, 6, 8, 4, 9, 2, 1, 5, 0 ; var items = from s in numbers orderby s select s; /输出结果 foreach (var item in items) Console.WriteLine(item); ,1.3.2 LINQ to ADO.NET,LINQ to ADO.NET是用来访问关系模型数据的编程接口,其可以进一步分为LINQ to SQL、LINQ to Entities和LINQ to DataSet这3个子类别,每个子类别针对特
6、定的关系模型数据。其中,LINQ to SQL在.NET自定义类型(class)和数据库的物理表之间建立映射,通过操作自定义类型从而实现对数据库物理表的操作;LINQ to Entities与LINQ to SQL有相似之处,但是LINQ to Entities并不是直接在数据库物理表和自定义类型之间建立映射,而是采用了一个概念上的实体数据模型,这项技术目前还在持续的研发中,本书将不会涉及到LINQ to Entities的内容;LINQ to DataSet是使用LINQ来访问DataSet的接口。,1.3.2 LINQ to ADO.NET,下面的代码实现了使用LINQ to SQL向数据
7、库物理表中添加一条记录的逻辑。 /使用LINQ to SQL向数据库物理表中添加一条记录 Book book = new Book(); /生成一个实体类对象 book.BOOKID = 99; book.Book_Name = C#程序设计; book.Book_Author = 张三; BookDataContext ctx = new BookDataContext(); /只要与数据库通信,BookDataContext对象必不可少 ctx.Book.InsertOnSubmit(book); /将需要修改的对象添加到BookDataContext对象中 ctx.SubmitChang
8、es(); /通过BookDataContext对象将修改保存到数据库,1.3.3 LINQ to XML,LINQ to XML是用来访问XML数据的编程接口,XML目前已经成为被各种开发平台所支持的一种数据标准。关于XML,存在着各种各样的规格和模型,具体如下。 XML Schema Definition(XSD):用来定义XML文档的结构。 Extensible Stylesheet Language for Transformations(XSLT):将XML文档在不同的结构间转换。 Document Object Model(DOM):用来管理在内存中的XML文档。 Simple O
9、bject Access Protocol(SOAP):使用XML来实现平台间的互操作性。,1.3.3 LINQ to XML,下面的代码实现了使用LINQ to XML创建一个XML元素的逻辑。 /使用LINQ to XML创建一个XML元素 Books = new XElement(Books, new XElement(Book001, new XElement(Title, C程序设计), new XElement(Author, 谭浩强), new XElement(Book002, new XElement(Title, 算法与数据结构), new XElement(Author,
10、 张浩);,1.4 LINQ应用实例,本节将通过3个分别使用LINQ to OBJECT、LINQ to SQL和LINQ to XML的实例,初次体验LINQ的强大功能以及使用LINQ的简单与高效。,1.4.1 LINQ to OBJECT应用实例,实例1-1将通过一个C#控制台应用程序来展示如何使用LINQ操作对象集合。运行Visual Studio 2008,新建项目,在打开的【新建项目】窗口的【项目类型】列表框中选择【Visual C#】,在【模板】列表框中选择【控制台应用程序】。注意,在【新建项目】窗口右上角的下拉列表框中选择【.NET Framework 3.5】平台类型,如图所示
11、。,1.4.1 LINQ to OBJECT应用实例,【新建项目】窗口,1.4.1 LINQ to OBJECT应用实例,单击【确定】按钮后,在打开的Program.cs文件中输入下面的代码。 /LINQ to OBJECT实例代码 using System; using System.Collections.Generic; using System.Linq; /使用Linq需引入的命名空间 using System.Text; namespace sample1_1 class Program static void Main(string args) ,1.4.1 LINQ to OB
12、JECT应用实例,/使用集合初始化器构造一个数组greetings string greetings = hello, hello LINQ, how are you ; /使用var声明一个局部变量items,变量类型自动识别 var items = from s in greetings /Linq关键字from、where和select where s.Length 10 /找出长度大于10的元素 select s; /输出满足条件的所有字符串 foreach (var item in items) Console.WriteLine(item); /为了方便看到输出结果 Console
13、.ReadLine(); ,1.4.2 LINQ to SQL应用实例,实例1-2将通过一个C# Windows窗体应用程序来展示如何使用LINQ to SQL对数据库中的物理表进行操作。运行Visual Studio 2008,新建项目,在打开的【新建项目】窗口的【项目类型】列表框中选择【Visual C#】,在【模板】列表框中选择【Windows窗体应用程序】。注意,在【新建项目】窗口右上角的下拉列表框中选择【.NET Framework 3.5】平台类型,如图所示。,1.4.2 LINQ to SQL应用实例,【新建项目】窗口,1.4.2 LINQ to SQL应用实例,单击【确定】按钮
14、,打开Visual Studio 2008窗体设计器窗口,在打开的窗体中添加4个Button控件,控件名称分别为QueryButton、AddButton、ModifyButton和DeleteButton;然后向窗体添加一个DataGridView控件,控件名称为BookDataGridView。窗体布局如图所示。,1.4.2 LINQ to SQL应用实例,窗体布局,1.4.3 LINQ to XML应用实例,实例1-3将通过一个C# Windows窗体应用程序来展示如何使用LINQ对XML数据进行操作。运行Visual Studio 2008,新建项目,在打开的【新建项目】窗口中的【项目类型】列表框中选择【Visual C#】,在【模板】列表框中选择【Windows窗体应用程序】。注意,在【新建项目】窗口右上角的下拉列表框中选择【.NET Framework 3.5】平台类型,如图所示。,1.4.3 LINQ to XML应用实例,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国网络游戏市场深度研究与前景趋势报告(定制版)
- 2024年中国钢铁行业节能减排行业调查报告
- 中国车用仪表制造市场深度分析及投资战略咨询报告
- 健康生活课件
- 萧山区指纹门禁管理办法
- 薪酬福利管理办法中体检
- 蛋糕店冷库管理办法细则
- 衡水土地合作社管理办法
- 医疗保障管理课件
- 装修质量保证金管理办法
- 护理质量改进计划书
- 2014电气装置安装工程低压电器施工及验收规范
- (正式版)JBT 11270-2024 立体仓库组合式钢结构货架技术规范
- 中医治疗失眠课件
- 水厂分布式光伏项目(设备采购)实施组织方案及售后服务方案
- 消防改造工程技术标书样本
- 数字化转型数据架构设计方法论及案例
- 足球教练员管理制度范文
- 无人机技术在消防救援中的应用
- 2021颈椎病诊治与康复指南
- that,whether if 引导的宾语从句
评论
0/150
提交评论