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中的增刪改查:c#

     下面逐一對查詢以及增刪改方面進行介紹:數組

1 建立函數

     要想查詢數據庫中表的數據,就要先創建對數據庫表的映射,就像要想使用ADO.NET就須要先把數據庫中的數據存到DataSet中,代碼以下:spa

     以上就是對數據表的一個映射。創建好對錶的映射以後,就能夠對其進行相應的操做了。3d

2 查詢orm

     下面是查詢代碼:(使用select進行查詢)xml

      以上就是對數據庫的查詢,咱們能夠寫出很複雜的查詢來,其實在內部,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程序。

相關文章
相關標籤/搜索