建立 LINQ to SQL 類別:使用 O/R 設計工具
更新:2007 年 11 月
物件關聯式設計工具 (O/R 設計工具) 可以將 LINQ to SQL 類別對應至資料庫中的資料表。這些對應的類別也稱為「實體類別」(Entity Class)。實體類別的屬性會對應至資料表的各資料行,而且您可以將資料繫結至 Windows Form 上的控制項。若要進一步了解 LINQ to SQL,請參閱在 Visual Basic Express 中使用 LINQ。
在本課程中,您將學習如何使用 O/R 設計工具建立與 Northwind 資料庫中的資料表對應的實體類別,然後將資料顯示在 Windows Form 應用程式上。
必要條件
如果在安裝 Visual Basic Express 版時未安裝 SQL Server Express Edition,請先安裝後再繼續。LINQ to SQL 目前不支援 SQL Server Compact 3.5 資料庫。如需如何取得 SQL Server Express Edition 的詳細資訊,請參閱 HOW TO:安裝範例資料庫中的<取得 SQL Server Express Edition>一節。
若要完成本課程,您必須可以存取 SQL Server 版本的 Northwind 範例資料庫。如需詳細資訊,請參閱 HOW TO:安裝範例資料庫。
試試看!
若要開啟 O/R 設計工具
在 [檔案] 功能表上,按一下 [新增專案]。
按一下 [新增專案] 對話方塊之 [範本] 窗格中的 [Windows Form 應用程式],然後將專案命名為 LINQToSQLSample,再按一下 [確定]。
新的 Windows Form 專案隨即開啟。
按一下 [專案] 功能表上的 [加入新項目]。
按一下 [LINQ to SQL 類別] 範本,並在 [名稱] 方塊中輸入 NorthwindSample.dbml。
按一下 [加入]。
專案中會加入空的 [LINQ to SQL 檔案] (NorthwindSample.dbml),並開啟 O/R 設計工具。
O/R 設計工具是由兩個設計介面組成:左邊的 [實體] 窗格以及右邊的 [方法] 窗格。[實體] 窗格是主設計介面,可以顯示檔案中定義的實體類別。[方法] 窗格這個設計介面則會顯示對應至預存程序 (Stored Procedure) 和函式的 DataContext 方法。以滑鼠右鍵按一下 [O/R 設計工具],然後按一下 [隱藏方法窗格],就可以隱藏 [方法] 窗格。在本課程中您不會使用 [方法] 窗格,但是您可以在 DataContext 方法 (O/R 設計工具) 中進一步了解它。
按一下主設計介面,並在 [屬性] 視窗中的 [名稱] 屬性中確認它的名稱是 NorthwindSampleDataContext。您可以將資料庫資料表從 [資料庫總管] 拖曳至 O/R 設計工具介面,以建立實體類別。但是,您必須先建立與資料庫的連接。這個程序與 取得需要的資訊:連接現有資料庫 中說明的程序類似,不同處在於本課程使用的是 SQL Server Express 資料庫。
若要連接至 Northwind 資料庫
按一下 [檢視] 功能表上的 [資料庫總管]。
[資料庫總管] 隨即開啟。
按一下 [資料庫總管] 工具列中的 [連接至資料庫] 按鈕。
按一下 [選擇資料來源] 視窗中的 [ Microsoft SQL Server 資料庫檔案],然後按一下 [繼續]。
[加入連接] 對話方塊隨即開啟。
在 [加入連接] 對話方塊中,確定資料來源是 [Microsoft SQL Server 資料庫檔案 (SqlClient)]。
按一下 [瀏覽],然後搜尋並選取 [Northwind.mdf] 資料庫。按一下 [開啟]。
按一下 [測試連接] 確認連接成功。
按一下 [確定] 關閉 [加入連接] 對話方塊。
建立實體類別
現在 [資料庫總管] 中會顯示 Northwind 資料庫中的資料表。您可以將資料表從 [資料庫總管] 拖曳至 [O/R 設計工具]。這樣就會自動建立實體類別,而且該實體類別的屬性會對應至您從 [資料庫總管] 拖曳的資料表中的資料行。
若要建立實體類別
展開 [資料庫總管] 中的 [Northwind.mdf],然後展開 [資料表]。
將 [Customers] 從 [資料庫總管] 拖曳至 O/R 設計工具介面。如果提示您將資料檔案複製到專案中,請按一下 [是]。
建立一個名稱為 [Customer] 的實體類別。它的屬性會對應至 [Customers] 資料表中的各資料行。
將 [Orders] 從 [資料庫總管] 拖曳至 O/R 設計工具介面。
隨即建立實體類別 [Order],該類別具有與 [Customer] 實體類別的關聯 (關聯性)。它的屬性會對應至 [Orders] 資料表中的各資料行。
現在已建立好實體類別,接著可以執行 [資料來源組態精靈],將它們加入至 [資料來源] 視窗中。
若要在資料來源視窗中加入實體類別做為物件資料來源
按一下 [建置] 功能表上的 [Build LINQToSQLSample]。
在 [資料] 功能表上,按一下 [顯示資料來源]。
在 [資料來源] 視窗中,按一下 [加入新資料來源]。
按一下 [選擇資料來源類型] 頁面上的 [物件],然後按 [下一步]。
展開 [LINQToSQLSample] 節點,然後找出 [Customer] 類別。
注意事項: 如果 [Customer] 類別無法使用,請按一下 [取消],並建置專案,然後再次執行精靈。
按一下 [完成] 以建立資料來源,然後將 [Customer] 實體類別加入至 [資料來源] 視窗。
將 Windows Form 上的控制項繫結至實體類別
您可以將資料表或欄位從 [資料來源] 視窗拖曳至表單,以將與實體類別進行資料繫結的控制項加入至 Windows Form。
若要加入繫結至實體類別的控制項
以滑鼠右鍵按一下 [方案總管] 中的 Form1,然後按一下 [設計工具檢視]。
展開 [資料來源] 視窗中的 [Customer]。
按一下 [ CompanyName] 旁邊的下拉箭號,然後按一下 [標籤]。
將 [CompanyName] 拖曳至表單。
標籤和巡覽工具列會加入至表單。
將 [Orders] 從 [資料來源] 視窗拖曳至 Form1。將它放在 [CompanyName] 底下。
以滑鼠右鍵按一下 [方案總管] 中的 Form1,然後按一下 [程式碼檢視]。
將下列程式碼加入至表單中 Form 類別的頂端,意即不要指定特定的方法。
Private NorthwindSampleDataContext1 As New _ NorthwindSampleDataContext
在表單上按兩下以建立 Form_Load 事件的事件處理常式。將下列程式碼加入至事件處理常式:
CustomerBindingSource.DataSource = _ NorthwindSampleDataContext1.Customers()
按 F5 執行程式碼。
在表單開啟時,按一下工具列上的 [移到下一個] 按鈕捲動公司,並確認訂單資料已更新為顯示所選取客戶的訂單。
儲存變更
將控制項加入至 O/R 設計工具時,巡覽工具列上的 [儲存資料] 按鈕是停用狀態。如果要讓使用者能夠儲存變更,則必須先啟用 [儲存] 按鈕,然後加入儲存資料變更的程式碼。
若要啟用儲存按鈕
在 [設計] 檢視中,選取巡覽工具列上的儲存按鈕 (圖示為碟片的按鈕)。
在 [屬性] 視窗中,將 [Enabled] 屬性設定為 [True]。
按兩下儲存按鈕以建立事件處理常式,並切換至 [色彩編輯器]。
將下列程式碼加入至儲存按鈕事件處理常式:
NorthwindSampleDataContext1.SubmitChanges()
按 F5 執行程式碼。
變更其中一個 [Shipped Date] 欄位中的值,並按 TAB 鍵認可變更。
按一下 [儲存資料] 按鈕。
關閉表單
按 F5,並確認進行的變更已儲存。
後續步驟
在本課程中,您學會如何使用 O/R 設計工具建立 LINQ to SQL 類別。在下一課中,您將學習如何使用 LINQ 查詢來繫結資料。若要進一步了解如何在應用程式中使用 LINQ,請參閱在 Visual Basic Express 中使用 LINQ。
下一個課程:使用 LINQ 將資料繫結至控制項
請參閱
工作
逐步解說:建立 LINQ to SQL 類別 (O/R 設計工具)
概念
在 Visual Basic Express 中使用 LINQ