[LINQ]lLINQ初次使用與介紹

摘要:[LINQ-1]linq初次使用與介紹

Language-Integrated Query (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 版中新增的一項功能(應該說是一套處理資料庫的機制),它改善了物件與資料原本在使用與想法上的差距。(內容可參考微軟MSDN:LINQ簡介)

因為專案開發的關係,隔了快兩年又有機會回來研究這項技術,簡單的LINQ範例如下

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Linq;
using System.Collections.Generic;

namespace TestOnly
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            List test1 = new List();
            for (int i = 0; i < 10; i++) {
                test1.Add(i.ToString());
            } 
            LinqSelect(test1);
        }
        protected void LinqSelect(List a)
        {
            IEnumerable enumTest =
                from test in a
                where test == "1"
                select test;
            foreach(string temp in enumTest )
            {
                Response.Write(temp);
            }
        }
    }
}

以上的程式碼很簡單,就是透過List<T>建立一組0~9的List,然後再透過LINQ的資料讀取方式針對值為1的才呈現。

LINQ在使用上一定要先加入System.Linq與System.Collections.Generic這兩個Namespace,然後透過LINQ的資料存取語法來篩選出資料,感覺上就像針對DataSet或是DataTable的資料在做選取一樣,非常直覺。

雖然上面這個範例看起來會感覺跟以前在使用ADO.net做資料存取很像似(感覺還是寫了類似的sql command..),但最大的差異在於兩點:以物件的方式直接存取資料以及透過.net的語言直接做資料呈現上的處理(排序、群組、篩選條件等)。

引用呂高旭老師在書中所提及的部分可以做以下的說明:

  1. SQL語法是為了存取關聯式資料庫而發展出來的一種敘述語法,甚至還稱不上為程式語言,只有搜尋引擎認識,會根據語法的意義讓搜尋引擎執行相關的東做。
  2. LINQ包含其他對於資料存取的處理方式,其中範例使用到的LINQ運算式只是LINQ技術的其中一部分而已,而透過LINQ運算式程式設計師可以用更直覺的方式撰寫物件導向的資料查詢/存取語言。

*LINQ技術專案的詳圖與LINQ資料處理之流程

*與Dynamic Data可使用的資料庫存取技術(圖片來源為David.net的文章)


如果覺得文章還不錯麻煩請在文章最上面給予推薦,你的支持是小弟繼續努力產出的動力!