摘要:[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的語言直接做資料呈現上的處理(排序、群組、篩選條件等)。
引用呂高旭老師在書中所提及的部分可以做以下的說明:
- SQL語法是為了存取關聯式資料庫而發展出來的一種敘述語法,甚至還稱不上為程式語言,只有搜尋引擎認識,會根據語法的意義讓搜尋引擎執行相關的東做。
- LINQ包含其他對於資料存取的處理方式,其中範例使用到的LINQ運算式只是LINQ技術的其中一部分而已,而透過LINQ運算式程式設計師可以用更直覺的方式撰寫物件導向的資料查詢/存取語言。
*LINQ技術專案的詳圖與LINQ資料處理之流程
*與Dynamic Data可使用的資料庫存取技術(圖片來源為David.net的文章)
如果覺得文章還不錯麻煩請在文章最上面給予推薦,你的支持是小弟繼續努力產出的動力!