文章教程

13.1LINQ简介

8/31/2020 9:52:39 PM 人评论 次浏览

13.1 LINQ简介

LINQ是Language Integrated Query的缩写,中文名字是“语言集成查询”。LINQ引入了标准的、易于学习的查询模式和更新模式,可以对其进行扩展以便支持几乎任何类型的数据存储。它提供给编程人员一个统一的编程概念和语法,开发人员不需要关心将要访问的是关系数据库还是XML数据,或是远程的对象,它都采用同样的访问方式。Visual Studio 2012包含LINQ提供程序的程序集,这些程序集支持LINQ与.NET Framework、SQL Server数据库、ADO.NET数据集以及XML文档一起使用。

从如图13-1所示的LINQ技术体系结构中可以看到LINQ实际上是由5个部分的内容组成。

alt

图13-1 LINQ体系结构

(1)LINQ to Objects:它指的是直接对任意IEnumerable或lEnumerable<T>集合使用LINQ查询,无须使用中间LINQ提供程序或API,如LINQ to SQL或LINQ to XML。可以使用LINQ来查询任何可枚举的集合,如List<T>、Array或Dictionary<TKey, TValue>。该集合可以是用户定义的集合,也可以是.NET Framework API返回的集合。

(2)LINQ to DataSet:它将LINQ和ADO.NET集成,它通过ADO.NET获取数据,然后通过LINQ进行数据查询,从而实现对数据集进行非常复杂的查询。可以简单把它理解成通过LINQ对DataSet中保存的数据进行查询。

(3)LINQ to SQL:它是基于关系数据的NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能。其建立于公共语言类型系统中的基于SQL模式定义的集成之上,当保持关系型模型表达能力和对底层存储的直接查询评测的性能时,这个集成在关系型数据之上提供强类型。

(4)LINQ to Entities:它使开发人员能够通过使用LINQ表达式和LINQ标准查询运算符,直接从开发环境中针对实体框架对象上下文创建灵话的强类型查询。

(5)LINQ to XML:在System.Xml.LINQ命名空间下实现对XML的操作。采用高效、易用、内存中的XML工具在宿主编程语言中提供Xpath/XQuery功能等。

LINQ的出现,开发人员可以使用关键字和运算符实现针对强类型化对象集的查询操作。在编写查询过程时,可以获得编译时的语法检查,元数据,智能感知和静态类型等强类型语言所带来的优势。并且它还可以方便地查询内存中的信息而不仅仅只是外部数据。

在Visual Studio 2012中,可以使用C#语言为各种数据源编写LINQ查询,包括SQL Server数据库、XML文档、ADO.NET数据集以及支持IEnumerable接口(包括泛型)的任意对象集合。除了这几种常见的数据源之外,.NET 4.5还为用户扩展LINQ提供支持,用户可以根据需要实现第三方的LINQ支持程序,然后通过LINQ获取自定义的数据源。LINQ查询既可在新项目中使用,也可在现有项目中与非LINQ查询一起使用。唯一的要求是项目必须与.NET Framework版本相兼容。

由于本章篇幅有限,所以主要介绍的是最为常用的“LINQ to实体”的查询技术。

教程类别