你的位置:首页 > ASP.net教程

[ASP.net教程]数据操作So easy


1、LINQ是什么?

    LINQ是Language Integrated Query的缩写,即“语言集成查询”的意思。LINQ的提出就是为了提供一种跨越各种数据源的统一的查询方式,它主要包含4个组件--Linq to Objects、Linq to

    下面简单的介绍一下LINQ的4个组件。

    Linq to SQL组件:它可以查询基于关系数据库的数据。其中,微软只实现了对SQL Server数据库的查询,包括对其中数据进行查询、修改和删除等操作。

    Linq to DataSet组件:它可以查询DataSet对象中的数据,并能对数据进行增删改查等操作。

    Linq to

    Linq to Object组件:这个组件可以查询集合数据,如数组或List等。

 

2、LINQ好在哪里?

    好的地方:LINQ使对数据源的操作变得更加简单、方便和易于理解。

    2.1 查询表达式

         在说明LINQ的好处之前,需要先了解“查询表达式”。查询表达式必须以from子句开头,并且必须以select或group子句结尾,在第一个from子句和最后一个select或group子句之间,可以包含一个或多个where子句、orderby、join子句。其形式非常类似于SQL语言,只是书写倒了过来。

         //查询表达式  var queryExp= from s in collection

                                                    select s;

         //查询表达式还有另外一种表达方式,即“点标记方式”,var queryExp=collection.Select(s=>s);

         至于选择什么方式,就看程序员个人的习惯了。

    

    2.2 使用Linq to Objects查询集合

          在LINQ提出之前,一般使用for和foreach查询集合,但这种方式没有LINQ to Objects来得简洁,且不容易添加筛选条件。

//创建查询表达式来获得集合中为偶数的元素var queryResults= from item in collection              where item%2 ==0              select item;

          从以上代码可以看出,使用Linq to Objects来查询集合对象,代码更加简洁了。而且LINQ还方便添加筛选条件,只需要在where子句中添加即可。

 

   2.3 使用Linq to

//创建查询,获取名字为“李四”的元素var queryResults=from element in "Person")              where element.Element("Name").Value=="李四"               select element;

        从以上代码可以看出,使用Linq to

        Linq to DataSet的例子这里就不写了,它的使用方式类似于Linq to Object,只是Linq to DataSet查询的不是集合对象而是DataSet对象。

 

3、理解LINQ的本质

    其实在C# 3.0中并没有添加任何新特性,因为对于编译器而言,C# 3.0新特性的代码和以前的代码一样,这对于LINQ也是不例外的。大家可以从IL代码中得出,LINQ表达式是建立在Lambda表达式和扩展方法的基础上的,而Lambda表达式又是建立在委托的基础上的,扩展方法也是属于方法,所以,LINQ的本质还是对方法的调用。