在第一篇中,我已經和大家簡單介紹了linq。也和大家提起linq是C# 3.0裡的一個特性。不過,你去裝linq priview時,你會發現,它提供了許多vb的linq代碼。從現在的情況看,linq會被移植到.net framework下。在本篇中,筆者將開始更加詳細的介紹dlinq。同時,也會介紹很實用的技巧和方法。在這之前,你需要安裝s2008 beta2版本。可以到
http://msdn2.microsoft.com/en-us/vstudio/aa700831.aspx 下載。如果,你的機器上是vs2005的英文版,你還需要安裝一個linq preview版本。你可以到下面地址去下載。
http://www.microsoft.com/downloads/details.aspx?familyid=1e902c21-340c-4d13-9f04-70eb5e3dceea&displaylang=en
以後的章節中,筆者將會配合這個版本,進行講解,並對它裡面提供的例子進行詳細的說明。
安裝linq preview後,你可以在安裝目錄下,找到安裝程序提供的例子。C# 的應該在C:\Program Files\LINQ Preview\C#\Samples\SampleQueries目錄下。打開該工程。因為dlinq主要是對數據庫進行操作,你還需要准備數據庫。例程給你提供的數據庫是用.\SQLEXPRESS來實現的。說實話,這個版本的數據庫實在是難用。我建議大家使用SQL2000 or SQL2005. 你可以在C:\Program Files\LINQ Preview\Data目錄下找到一個叫做NORTHWND的數據庫文件。如圖所示,把它附加到你的服務器上。因為NORTHWND是SQL SERVER附帶的例子數據庫,你可能需要將原來的刪掉,才能附加新的上去。
你也可以到http://msdn2.microsoft.com/en-us/bb330936.aspx 下載for beta2的sample。其數據文件的路徑為,LinqSamples\SampleQueries\Data
你在附加這個數據庫的時候,有可能碰到SQL2000 附加不上去的問題。你可以給我留言,我這裡有SQL2000 的數據庫備份。在附加完數據庫後,你需要修改程序文件了,讓SampleQueries的程序使用你剛附加的數據庫。打開SampleQueries的程序,在Solution Explorer中找到DLinqSamples.cs文件,打開它,找到24行。如下的代碼。
private readonly static string connString = "AttachDBFileName='" + dbPath + "';Server='" + sqlServerInstance + "';Integrated Security=SSPI;enlist=false";
將它替換為
private readonly static string connString = "Server=yourSever;Database=northwind;User=yourname;Password=yourPassword";
這樣,你就可以使用你剛附加的數據庫了。或許你要問為什麼非要用這個新的數據庫,為什麼不用SQL SERVER附帶,那是因為在這個新的數據庫中,我們添加了許多新的東西。^_^
一切都准備好以後,我們就可以來看這個例子了。筆者在這麼沒有興趣講解SampleQueries是如何設計的,也沒有興趣講解它是如何取到code的。這裡我們只講dlinq。先讓我們來看看大體的一個界面。
界面做的很漂亮也很簡潔。選擇左邊目錄樹,第一個主接點是linq的101例子,前面我也和大家講過來linq的主要是針對內存操作。dlinq才是針對數據庫操作。我們的重點依然在dlinq上。如圖所示,選擇where接點中第一個,然後右邊代碼區會顯示該段代碼,點run sample!,下面會首先出現程序翻譯的sql語句,再下面是返回的數據集。
在正式講解dlinq的語法前,筆者也許還要把northwind數據庫中的表以及表之間的關系簡單地和大家交代下。
幾個表的關系如上圖。我們常用的幾個要說明下。一個是Customers表為客戶表,一個是Orders表為訂單表,一個是Products表為產品表,最後一個是Order Details表,為訂單詳細表。因為northwind是大家已經很熟悉的一個數據庫,我就不再做贅言。下章,我將依然為大家准備最關鍵的一個環節,影射文件。