談到 DLINQ,不得不先說 LINQ。讓我們先看看什麼是 LINQ。LINQ 是 Language Integrated Query 的縮寫。事實上 DLINQ 就是 Database Language Integrated Query 的縮寫。LINQ 和 DLINQ 最大區別在於 LINQ 是對記憶體操作,而 DLINQ 的操作對象為資料庫。
先來看一個 LINQ 範例。在此之前,您需要安裝 VS2008 Beta 2 版本。可至 https://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx 下載。若您的機器是 VS2005 英文版,還需安裝 LINQ Preview 版本,可至 https://www.microsoft.com/downloads/details.aspx?familyid=1e902c21-340c-4d13-9f04-70eb5e3dceea&displaylang=en 下載。
微軟也提供許多學習資源,先給幾個連結:
https://msdn.microsoft.com/data/ref/linq/https://msdn.microsoft.com/data/ref/linq/default.aspx?pull=/library/en-us/dndotnet/Html/linqprojectovw.aspxhttps://msdn.microsoft.com/vcsharp/future/好,來看一個 LINQ 範例(從 LINQ 說明文件獲得):
using System;
using System.Query;
using System.Collections.Generic;
class app
{
static void Main()
{
string[] names = { "Burke", "Connor", "Frank",
"Everett", "Albert", "George",
"Harris", "David" };
IEnumerable<string> expr = from s in names
where s.Length == 5
orderby s
select s.ToUpper();
foreach (string item in expr)
Console.WriteLine(item);
}
}
您可能感覺陌生。放心,這大概是第一次看到的緣故。這裡的 from、where、orderby、select 都是 LINQ 保留字,應該用藍色顯示,但部落格尚不支援。其實查詢運算式看起來很像 SQL 語句,如 select * from table1 where column1 = ""。我第一次看到 LINQ 時,就感覺是寫在程式裡的 SQL 語句。以前我們用 string 類型組成 SQL 語句,再透過 Command 或 Adapter 傳給 SQL Server。現在感覺像把 SQL 直接當程式碼實現,這只是錯覺。
這個範例只是從字串陣列中提取長度為 5 的資料,並轉大寫。IEnumerable<string> 使用了 C# 2.0 泛型。結果回傳資料集存放在 expr 中。從資料集取結果用 in 表示,如 from s in names,在 names 集合中取出 s。s 代表一筆筆記錄。where 表示條件,orderby 表示排序依據。select 選擇欄位組成變數。您可能覺得奇怪,s 變數在哪裡宣告?其實 s 是 names 裡的元素,in names 時已宣告 s。
在這個範例中,大家先感受一下 LINQ,後續章節會介紹更多。對記憶體陣列查詢無法顯示 LINQ 強大功能,對資料庫操作才使 LINQ 更具實際意義。後續將逐漸介紹 DLINQ 語法。