逐步解說:使用單一資料表繼承建立 LINQ to SQL 類別 (O/R 設計工具)
Visual Studio 中的 LINQ to SQL 工具通常是在關聯式系統中實作,因此可支援單一資料表繼承。 本逐步解說以如何:使用 O/R 設計工具設定繼承主題中提供的泛型步驟為基礎,提供一些真實資料來示範 O/R 設計工具中的繼承用法。
在此逐步解說中,您將執行下列工作:
建立資料庫資料表,並在其中加入資料。
建立 Windows Forms 應用程式。
將 LINQ to SQL 檔案新增至專案。
建立新的實體類別。
設定實體類別以使用繼承。
查詢繼承的類別。
將資料顯示在 Windows Form 上。
建立要繼承的來源資料表
若要查看繼承的運作方式,請建立小型 Person
資料表、將它當作基底類別 (Base Class),然後建立繼承自它的 Employee
物件。
若要建立用來示範繼承的基底資料表
在 [伺服器總管] 或 [資料庫總管] 中,以滑鼠右鍵按一下 [Tables] 節點,然後按一下 [新增資料表]。
注意
您可以使用 Northwind 資料庫,或其他可以在其中加入資料表的任何資料庫。
在資料表設計工具中,將下列資料行新增至資料表:
資料行名稱 資料類型 允許 Null 識別碼 int False 類型 int True FirstName nvarchar(200) False LastName nvarchar(200) False 經理 int True 將 ID 資料行設定為主索引鍵。
儲存資料表,並將它命名為 Person。
新增資料至資料表
為了能夠確認繼承的設定是否正確,單一資料表繼承中的每個類別都需要在資料表中有一些資料。
若要加入資料至資料表
在資料檢視中開啟資料表 (以滑鼠右鍵按一下 [伺服器總管] 或 [資料庫總管] 中的 [Person] 資料表,然後按一下 [顯示資料表資料]。)
將下列資料複製至資料表 (您可以在 [結果] 窗格中選取整個資料列,然後將其複製並貼到資料表中。)
識別碼 類型 FirstName LastName 經理 1 1 Anne Wallace NULL 2 1 Carlos Grilo NULL 3 1 Yael Peled NULL 4 2 Gatis Ozolins 1 5 2 Andreas Hauser 1 6 2 Tiffany Phuvasate 1 7 2 Alexey Orekhov 2 8 2 Michał Poliszkiewicz 2 9 2 Tai Yee 2 10 2 Fabricio Noriega 3 11 2 Mindy Martin 3 12 2 Ken Kwok 3
建立新專案
現在您已建立好資料表,請建立新的專案來示範如何設定繼承。
建立新的 Windows Forms 應用程式
在 Visual Studio 的 [檔案] 功能表上,選取 [新增]>[專案]。
在左側窗格中展開 Visual C# 或 Visual Basic,然後選取 [Windows 桌面]。
在中間窗格中,選取 [Windows Forms 應用程式] 專案類型。
將專案命名為 InheritanceWalkthrough,然後選擇 [確定]。
InheritanceWalkthrough 專案已建立並新增至方案總管中。
將 LINQ to SQL 類別檔案新增至專案
若要將 LINQ to SQL 檔案新增至專案
在 [專案] 功能表上,按一下 [加入新項目]。
按一下 [LINQ to SQL 類別] 範本,然後選取 [新增]。
.dbml
檔案隨即加入至專案,並開啟 O/R 設計工具。
使用 O/R 設計工具建立繼承
設定繼承的方法是將繼承物件從工具箱拖曳至設計介面。
若要建立繼承
在 [伺服器總管] 或 [資料庫總管] 中,巡覽至先前所建立的 [Person] 資料表。
將 [Person] 資料表拖曳至 [O/R 設計工具] 設計介面。
將第二個 [Person] 資料表拖曳至 [O/R 設計工具],然後將其名稱變更為 [Employee]。
從 Person 物件中刪除 Manager 屬性。
從 Employee 物件中刪除 Type、ID、FirstName 和 LastName 屬性。 (亦即刪除 Manager 以外的所有屬性。)
從工具箱的 [物件關連式設計工具] 索引標籤中,在 Person 與 Employee 物件之間建立繼承。 若要這麼做,請按一下 [工具箱] 中的 [繼承] 項目,然後放開滑鼠按鍵。 接著按一下 [Employee] 物件,然後按一下 [O/R 設計工具] 中的 [Person] 物件。 繼承線的箭號接著指向 [Person] 物件。
按一下設計介面上的 [繼承] 線。
將 [鑑別子屬性] 屬性設定為 Type。
將 [衍生類別鑑別子值] 屬性設定為 2。
將 [基底類別鑑別子值] 屬性設定為 1。
將繼承預設值屬性設定為 Person。
組建專案。
查詢繼承的類別並將資料顯示在表單上
您現在會將一些程式碼新增至表單,以查詢物件模型中的特定類別。
若要建立 LINQ 查詢並將結果顯示在表單上
將 ListBox 拖曳至 Form1。
按兩下表單,以建立
Form1_Load
事件處理常式。將下列程式碼加入至
Form1_Load
事件處理常式:
測試應用程式
執行應用程式,並確認清單方塊中顯示的記錄都是員工 (Type 資料行值為 2 的記錄)。
若要測試應用程式
請按 F5。
確認只顯示 Type 資料行值為 2 的記錄。
關閉表單。 (按一下 [偵錯] 功能表上的 [停止偵錯]。)