Language-Integrated Query (LINQ) is a groundbreaking innovation in Visual Studio 2008 and the .NET Framework version 3.5 that bridges the gap between the world of objects and the world of data.
Traditionally, queries against data are expressed as simple strings without type checking at compile time or IntelliSense support. Furthermore, you have to learn a different query language for each type of data source: SQL databases, XML documents, various Web services, and so on. LINQ makes a query a first-class language construct in C# and Visual Basic. You write queries against strongly typed collections of objects by using language keywords and familiar operators. The following illustration shows a partially-completed LINQ query against a SQL Server database in C# with full type checking and IntelliSense support.
译文:
语言集成查询(LINQ)是一个颠覆性的创新, 它随着VS2008和.net framework 3.5 一起发布. 它填平了对象世界与数据世界之间的鸿沟.
传统上, 查询数据的语句是一些简单的字符串, 它没有编译时的类型检查或智能感知的支持, 并且, 你每换一种数据源, 你就得学习一种新的查询语言: SQL 数据库, XML 文档, 各种各样的web 服务, 等等. LINQ 是最优秀的查询语言, 它内嵌于C# 和VB. 当你编写查询语句时, 你可以使用熟悉的关键字和操作符在强类型的对象集合上编写查询, 下面的示例展示了一个不完整的在SQL Server 数据库上的LINQ 查询, 用C# 语法 , 它拥有完全的类型检查和智能感知支持.
也就是说,linq在处理数据时,不用考虑数据源是什么,可以采用一致的语法格式进行操作,并获得VS2008 IDE的智能支持和编译时类型检测。
LINQ是一种用来进行数据访问的编程模型,使得.NET语言可以直接支持数据查询。LINQ的目标是降低访问数据的复杂度。LINQ可以用统一的方法访问不同类型的数据,可以将数据作为对象使用,能够更好地与编成模型集成,可以在Visual Studio中进行智能提示。
LINQ可以为SQL Server提供对象到关系的映射。此外,LINQ可以将单个类映射到多个表或视图,可以进行存储查询和实体查询。
在Visual Studio 2008中最重要的革新有三处,而且都与动态编程有关:首先是.NET Framework 3.5的最终版,它包含了开发Silverlight程序必要的图形库,而且Silverlight开发工具Popfly也成了VS2008的一部分;第二,通过动态语言运行时(DLR)支持IronRuby、IronPython等动态语言,而DLR也是.NET 3.5的一部分;第三,包含了早就该容纳进来的语言级集成查询LINQ。
所以说LINQ是Visual Studio 2008中的领军人物一点也不为过。借助于LINQ技术,我们可以使用一种类似SQL的语法来查询任何形式的数据。目前为止LINQ所支持的数据源有 SQL Server、XML以及内存中的数据集合。开发人员也可以使用其提供的扩展框架添加更多的数据源,例如MySQL、Amazon甚至是Google Desktop。