C#入门分享(八)——LINQ

      LINQ,语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。类似于SQL。   

      从技术角度而言,LINQ定义了大约40个查询操作符,如select、from、in、where以及order by(C#中)。使用这些操作符可以编写查询语句。不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型。

      经过了最近 20 年,面向对象编程技术( object-oriented (OO) programming technologies )在工业领域的应用已经进入了一个稳定的发展阶段。程序员现在都已经认同像 类(classes)、对象(objects)、方法(methods)这样的语言特性。考察现在和下一代的技术,一个新的编程技术的重大挑战开始呈现出来,即面向对象技术诞生以来并没有解决降低访问和整合信息数据( accessing and integrating information )的复杂度的问题。其中两个最主要访问的数据源与数据库(database)和XML(标准通用标记语言下的一个应用)相关。
      LINQ 提供了一条更常规的途径即给.Net Framework添加一些可以应用于所有信息源( all sources of information )的具有多种用途( general-purpose )的语法查询特性( query facilities ),这是比向开发语言和运行时( runtime )添加一些关系数据( relational )特性或者类似 XML 特性( XML-specific )更好的方式。这些语法特性就叫做 .NET Language Integrated Query (LINQ) 。它包含 DLinq 和 XLinq。

      LINQ TO SQL是LINQ技术在数据库方面的应用。数据库技术从OLEDB,ODBC到ADO,在到ADO.NET到现在的LINQ TO SQL,让程序员操作数据库越来越简单。 LINQ 的宗旨就是让查询无处不再,这当然要包括对数据库的查询。LINQ不仅仅可以对数据库进行查询,同样CUID(Create,Update,Insert,Delete)都可以实现,而且非常方便。

一 LINQ中的增删改查:

     下面逐一对查询以及增删改方面进行介绍:

1 创建

     要想查询数据库中表的数据,就要先建立对数据库表的映射,就像要想使用ADO.NET就需要先把数据库中的数据存到DataSet中,代码如下:

     以上就是对数据表的一个映射。建立好对表的映射之后,就可以对其进行相应的操作了。

2 查询

     下面是查询代码:(使用select进行查询)

      以上就是对数据库的查询,我们可以写出很复杂的查询来,其实在内部,LINQ会把你写的LINQ语句,转换成SQL语句送到数据库中去执行。然后返回相应的结果。如果大家想看转换后的SQL语句,可以在建立完连接之后加上这样一句:db.Log=Console.Out。这样程序将自动输出SQL语句和查询结果。

3 更改

   以下是更改例子:

    上述代码中通过Add()来进行添加。

4 删除

   通过Remove()来进行删除:

二 LINQ与XML

     关于XML,W3C有一套DOM模型,C#语言有一套在DOM模型下操作XML的类库。但是在LINQ出现以后,微软又重新做了一套关于XML的模型,而且操作起来同那套DOM模型没什么两样,但是更加的简单。

     下面用代码是一个用LINQ模型操作XML的示例:

      可以看出LINQ模型的简单性。我们还可以从LINQ模型上看出XElement的重要性。使用XElement不仅可以从头创建xml文件,还可以使用Load的方法从文件加载。还可以从数据库中取出所需元素,这就要用到LINQ TO SQL的东西了,同样可以从数组中取出元素。操作完成后可以使用Save方法进行保存。

      下面简单介绍一下对XML的增删查改:

1插入

2查询

    我们看到在输出XML元素的时候并不需要对每个元素进行强制的类型转换,这里C#编译器已经做了这些事情,它会在输出的时候调用每个元素的ToString()方法。

3修改

      当然同样可以使用SetElement方法,这里才是它的用武之地。

4删除

     删除元素还可以使适用SetElement方法,把某一元素设置为null也就是删除了这元素。

     从上面简单的介绍我们可以清楚的看到,使用LINQ操作XML是多么的简单,这也是它的一大优势。

三 LINQ中的常见函数

    LINQ提供了很多函数操作,以下是常用的一些函数的列表:

    先说明一下第二栏LAZY的意思。我们知道有一个术语叫:Lazy Evalution。就是说不到用的时候程序不对它进行求值。

    正因为LINQ提供的这些操作使得它的功能非常强大,具体用法大家可以具体去查一查,在实际编程中去使用体会。关于LINQ就先介绍到这,下一篇博客将为大家讲解如何用C#开发WPF程序。

原文地址:https://www.cnblogs.com/cht-inu/p/4493175.html