LINQ Framework详细介绍

开发 后端
这里介绍LINQ Framework大致分为三大部份,各自因应不同的资料来源,LINQ To Object Framework用来对物件查询,LINQ To XML Framework用于查询XML物件。

LINQ有很多值得学习的地方,这里我们主要介绍LINQ Framework,包括介绍LINQ To Object Framework等方面。

Microsoft于新一代的.NET Framework 3.5中增加了几个新功能,其中之一就是LINQ,与其它新功能不同,架构上,LINQ是一个Framework方式呈现,理论上可以使用于任何的.NET Language中,但她的真正威力必须要程式语言配合才能够完全的发挥。

LINQ Framework大致分为三大部份,各自因应不同的资料来源,LINQ To Object Framework用来对物件查询,LINQ To XML Framework用于查询XML物件,LINQ To ADO.NET Framework又可细分为三个子集:LINQ To DataSet Framework用来对DataTable、DataRow等物件做查询,LINQ To SQL Framework则用于对资料库的查询,LINQ To Entity Framework则是与ADO.NET Entity Framework整合。在LINQ Framwork之上的,是程式语言编译器所提供的LINQ Expression语法支援,如同前面所提及的,LINQ Framework本身是一组与程式语言无关的Framework,借助于编译器所提供的LINQ Expression支援,让设计师能更轻松的撰写LINQ应用程式。举例来说,在C#中可以用>from xxx in xxx where xxx == xxx<的LINQ Expression语法来取代对LINQ To Object Framework的函式呼叫>xxx.Where(..)<,此处的Where函式是LINQ To Object Framework所提供的,下文会对此有更详细的介绍。基本上,语言编译器有义务对于如LINQ To Object、LINQ To XML、LINQ To ADO.NET提供一致性的LINQ Expression语法规则,这可以让设计师只学习一种语法,就能应用于不同的语言中。 LINQ的出现,代表着程式语言将走向下一个阶段,正如其全名『Language Integrated Query』所表现的意义,程式语言将与查询语言整合,为设计师提供更快速、方便的查询功能,更甚之! LINQ中的LINQ To SQL功能正试图整合各资料库厂商所各自为政的SQL语言,其架构中的LINQ Provider机制,允许设计师为不同的资料库撰写Provider,将LINQ的语法转换成该资料库所能接受的语法

LINQ架构中分成了三大部份,LINQ To Object、LINQ TO ADO.NET、LINQ TO XML,因此本系列文章也分成了三个阶段,在此阶段中,笔者将以LINQ To Object Framework为主轴,为读者们介绍其基本用法,与其它的文章不同,本文同时会尝试讨论LINQ To Object Framework的幕后机制,将LINQ To Object Framework身上所被的简洁外衣去除,让读者们一窥其设计之巧妙之处,首先从一个简单的LINQ To Object Framework程式开始。

  1. private static void TestSimpleLinq() {  
  2. string[] list = new string[] { "1111", "2222", "3333" };  
  3. var p = from o in list select o;  
  4. foreach (var s in p)  
  5. Console.WriteLine(s);  
程式码中,斜体字部份就是C#所提供的LINQ Expression语法,意思是从list这个字串阵列中,取出一个列举物件(IEnumerable),放到p变数中,读者们应该已发觉到, p变数是以var方式宣告的,var是C# 3.0的新关键字,意指其型态是由右方运算式所指定,本文后面会详述其用法及限制,在此处,请将她视为是由编译器依据右方运算式的传回值所决议的型别。

【编辑推荐】

  1. Linq匿名类型简单概述
  2. Linq随机读取数据浅析
  3. Linq Lambda表达式全面分析
  4. Linq扩展方法简单分析
  5. 初探Linq局部变量类型
责任编辑:佚名 来源: 新浪科技
相关推荐

2009-09-08 13:07:15

介绍Linq to S

2009-09-14 14:17:11

Linq异常处理

2009-09-15 13:20:34

LINQ DataCo

2009-12-15 11:28:34

.NET Framew

2009-09-17 10:40:22

Linq Lambda

2010-01-05 17:39:10

.NET Framew

2010-01-06 11:30:22

.NET Framew

2009-09-15 13:59:18

LINQ to Dat

2009-09-14 14:20:36

LINQ ORM

2009-09-14 15:15:45

LINQ技术

2010-01-06 17:20:38

.Net Framew

2009-09-11 09:41:19

LINQ to SQL

2009-09-10 17:30:15

LINQ Where子

2009-09-16 10:38:43

LINQ查询

2009-09-08 10:50:20

2009-08-13 11:01:32

LINQPadLINQ工具

2009-09-14 16:33:55

LINQ To XML

2009-09-17 13:10:48

linq动态排序

2009-09-09 14:20:49

LINQ To Luc

2009-09-14 14:58:52

LINQ to XML
点赞
收藏

51CTO技术栈公众号