LINQ簡介

摘要:LINQ簡介

原文:http://vmiv.blogspot.com/2008/03/linq.html

LINQ簡介

在.NET Framework 3.5版中,引進一個新的功能,稱之為
LINQ (Language INtegrated Query),能夠利用.NET程式語言進行物件的查詢。.NET的程式語言,像是C# 3.0 (Visual C# 2008)、Visual Basic 9.0 (Visual Basic 2008) 都可利用一個LINQ提供的查詢運算式(Query Expression)語法來整合查詢能力。

LINQ為C#、Visual Basic程式語言提供基本查詢的能力,使用類似SQL查詢的語法,透過from子句指定查詢來源;利用where子句設定篩選條件;透過Order by子句做排序;以Group by子句對資料分組,再利用select子句回傳資料。再者,LINQ查詢也支援複雜的join語法,讓你快快樂樂地在程式語言中,進行複雜的連結運算, 恣意搜尋資料。


LINQ包含以下部份:

  •  LINQ to Object:可查詢集合與陣列中的資料
  •  LINQ to DataSet:查詢DataSet/DataTable中的資料。
  •  LINQ to SQL:查詢或異動微軟SQL Server資料庫的資料。
  •  LINQ to XML:查詢XML節點。

其中對於資料庫存取最重要的就是LINQ to SQL與LINQ to DataSet:

LINQ to SQL
LINQ to SQL,可以利用類似SQL查詢的語法,在執行時期將關連式資料庫的資料庫視為物件,以進行管理及查詢。這個功能真是酷斃了,想像一下你在程式中,下個類 似SQL的直覺式語法,就可以查詢物件的資料、篩選資料、做排序,而且,你的用戶端機器還不需要裝一台SQL Server。

LINQ to SQL內建了物件與關聯式資料兩者之間對應的架構,讓程式設計師能夠建立對應於資料庫結構的.NET物件模型。有了物件模型後,便可透過LINQ語法來查詢、或修改其中的資訊。而建立對應到資料庫物件的物件模型此等雜工,就交由工具去幫你做。

LINQ to DataSet
ADO.NET 提供的DataSet與DataTable具備有將資料暫存在用戶端電腦上的能力。DataSet就如離線的資料庫一般,可以存放一到多個資料表,每個資 料表為一個DataTable物件。DataSet也可以描述資料表與資料表之間的關聯,以及一對一、一對多等特色。雖然DataSet與 DataTable提供一些方法,具備有篩選、搜尋資料的能力,但認真來說,這些功能稍嫌簡陋,缺乏彈性,若想要做一些複雜的查詢,往往不能靠 DataSet、DataTable來達成。

當你利用DataAdapter把資料載入DataSet之後,若需要查詢其中的資料,就可以使用LINQ to DataSet。程式設計師可以針對DataSet來撰寫LINQ查詢。

應用程式的支援
LINQ 可以支援資料繫結 (Data Binding) 功能,不僅在Windows表單程式中可以很方便利用托曳方式進行設定,快速設計出應用程式介面,也可以在ASP.NET 網頁中,利用附加在ASP.NET 3.5版中的LinqDataSource控制項,來設計支援LINQ功能的網頁。未來不管是設計任何一種類型的.NET程式都可以加入LINQ,讓查詢 變得更簡單,讓資料的截取變的更方便。