什么是LINQ
2007-11-23 14:39
162 查看
【返回目录】
LINQ(发音:Link)是Language Integrated Query的简称,它是集成在.NET编程语言(例如:C#、VB.NET等)中的一种特性,目的是为.NET Framework提供更加通用和便利的信息查询方式,并且它对数据源提供了广泛的支持,而不仅仅局限于关系型数据库和XML。
LINQ不仅允许查询表达式从富元数据、编译时语法检查、静态类型和智能感知这些已有的代码规范中受益,并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源。
LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越、过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable<T>接口的源,并且它还允许适合于目标域或技术的第三方特定域操作符来扩大标准查询操作符集,更重要的是,第三方操作符可以用它们自己的提供附加服务的实现来自由地替换标准查询操作符,根据LINQ模式的习俗,这些查询喜欢采用与标准查询操作符相同的语言集成和工具支持。
查询架构(图1)的延展性用来向LINQ提供SQL数据以及XML之上的工作实现。针对XML的查询操作符(LINQ to XML)采用一种高效、易用、内存中的XML工具在宿主编程语言中提供XPath/XQuery功能;针对关系型数据的查询操作符(LINQ to SQL)建立于公共语言类型系统中的基于SQL的模式定义的集成之上,当保持关系型模型表达能力和对底层存储的直接查询评测的性能时,这个集成在关系型数据之上提供强类型。
图1,LINQ架构
LINQ(发音:Link)是Language Integrated Query的简称,它是集成在.NET编程语言(例如:C#、VB.NET等)中的一种特性,目的是为.NET Framework提供更加通用和便利的信息查询方式,并且它对数据源提供了广泛的支持,而不仅仅局限于关系型数据库和XML。
LINQ不仅允许查询表达式从富元数据、编译时语法检查、静态类型和智能感知这些已有的代码规范中受益,并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源。
LINQ定义了一组标准查询操作符用于在所有基于.NET平台的编程语言中更加直接地声明跨越、过滤和投射操作的统一方式,标准查询操作符允许查询作用于所有基于IEnumerable<T>接口的源,并且它还允许适合于目标域或技术的第三方特定域操作符来扩大标准查询操作符集,更重要的是,第三方操作符可以用它们自己的提供附加服务的实现来自由地替换标准查询操作符,根据LINQ模式的习俗,这些查询喜欢采用与标准查询操作符相同的语言集成和工具支持。
查询架构(图1)的延展性用来向LINQ提供SQL数据以及XML之上的工作实现。针对XML的查询操作符(LINQ to XML)采用一种高效、易用、内存中的XML工具在宿主编程语言中提供XPath/XQuery功能;针对关系型数据的查询操作符(LINQ to SQL)建立于公共语言类型系统中的基于SQL的模式定义的集成之上,当保持关系型模型表达能力和对底层存储的直接查询评测的性能时,这个集成在关系型数据之上提供强类型。
图1,LINQ架构
相关文章推荐
- Linq入门——什么是linq & 扩展方法
- C# 3.0 给我们带来了什么?从C#1.1到LINQ的查询语句变化
- 什么是LINQ
- LINQ / LINQ to SQL / LINQ to XXX 它们到底有什么区别
- 什么是Linq to sql 学习linq 1
- 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~五 LINQ实体类中对属性的赋值,变化前与变化后SendPropertyChanging与SendPropertyChanged
- 什么是LINQ?
- linq中的tolist()方法什么意思
- 从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~六 LINQTOSQL中为我们触发了SendPropertyChanging和SendPropertyChanged,它的真正用意是什么
- [转]LINQ会为我们带来什么?
- C# 3.0 给我们带来了什么?从C#1.1到LINQ的查询语句变化
- LINQ入门:LINQ能做什么?(1)
- Entity Framework和DataSet,Linq to SQL有什么区别
- 什么是LINQ
- LINQ学习笔记(1) 什么是LINQ?
- 什么是LINQ
- 在 DLinq 发布之前用什么查询数据?OQL.NET 介绍 (1)
- LINQ TO SQL 什么优缺点(网文摘录)
- 委托是什么?匿名方法是什么?在C# 3.0中,Lambda表达式是什么?扩展方法是什么?LINQ是什么?您觉得C# 3.0中还有哪些重要的特性,它们带来了什么优势?BCL中哪些类库和这些特性有关?您平时最常用哪些