共用方式為


逐步解說:使用單一資料表繼承建立 LINQ to SQL 類別 (O/R 設計工具)

Visual Studio 中的 LINQ to SQL 工具支援單一資料表繼承,因為它通常是在關聯式系統中實作。 本逐步解說擴充了 如何:使用 O/R 設計工具設定繼承 主題中提供的一般步驟,並提供一些實際資料來示範如何在 O/R 設計工具中使用繼承。

在這次逐步解說中,您將執行以下工作:

  • 建立資料庫表格,並將資料新增至其中。

  • 建立 Windows Forms 應用程式。

  • 將 LINQ to SQL 檔案新增至專案。

  • 建立新的實體類別。

  • 將實體類別配置為使用繼承。

  • 查詢繼承的類別。

  • 在 Windows 表單上顯示資料。

建立繼承用的資料表

若要查看繼承的運作方式,您可以建立一個小型 Person 資料表,將其用作基類,然後建立從 Employee 其繼承的物件。

建立基底資料表以示範繼承

  1. [伺服器總管][資料庫總管] 中,以滑鼠右鍵按一下 [資料表] 節點,然後按一下 [新增資料表]。

    備註

    您可以使用 Northwind 資料庫或任何其他可新增資料表的資料庫。

  2. 資料表設計工具中,將下列資料行新增至資料表:

    欄位名稱 數據類型 允許空值
    識別碼 int
    Type int 真實
    名字 nvarchar(200)
    姓氏 nvarchar(200)
    經理 int 真實
  3. 將 ID 欄設定為主鍵。

  4. 儲存表格並將其命名為 Person

將資料新增至表格

為了驗證繼承是否已正確配置,表格需要在單一表繼承中為每個類別提供一些資料。

將資料新增至表格

  1. 在資料檢視中開啟表格。 (以滑鼠右鍵按一下 [伺服器總管][資料庫總管] 中的 [人員] 資料表,然後按一下 [顯示資料表資料]。

  2. 將下列資料複製到表格中。 (您可以複製它,然後通過選擇 結果窗格 中的整列將其粘貼到表格中。

    識別碼 Type 名字 姓氏 經理
    1 1 安妮 華萊士 NULL
    2 1 卡洛斯 格里洛 NULL
    3 1 亞爾 佩萊德 NULL
    4 2 加蒂斯 奧唑林 1
    5 2 安德烈亞斯 豪瑟 1
    6 2 蒂芙尼 普夫鈉 1
    7 2 阿列克謝 奧列霍夫 2
    8 2 米哈烏 波利斯凱維奇 2
    9 2 2
    10 2 法布里西奧 諾列加 3
    11 2 明迪 馬丁 3
    12 2 3

建立新專案

現在您已建立表格,請建立新專案來示範設定繼承。

建立新的 Windows Forms 應用程式

  1. 在 Visual Studio 中,於 [檔案] 功能表上選取 [新增]>[專案]

  2. 展開左側窗格中的 [Visual C#] 或 [Visual Basic],然後選取 [Windows 桌面]。

  3. 在中間窗格中,選取 [Windows Forms 應用程式 ] 專案類型。

  4. 將專案命名為 InheritanceWalkthrough,然後選擇 [確定]。

    InheritanceWalkthrough 專案隨即建立,並新增至 [方案總管]。

將 LINQ to SQL 類別檔案新增至專案

將 LINQ to SQL 檔案新增至專案

  1. [專案] 功能表上,按一下 [新增專案]。

  2. 按一下 [LINQ to SQL 類別] 範本,然後選取 [新增]。

    .dbml檔案會新增至專案,並開啟 O/R 設計工具

使用 O/R 設計工具建立繼承

Inheritance 物件從 [工具箱 ] 拖曳到設計介面,以設定繼承。

創建繼承關係

  1. [伺服器總管][資料庫總管] 中,流覽至您稍早建立的 [人員] 資料表。

  2. [人員] 資料表拖曳至 O/R 設計工具 設計介面。

  3. 將第二個 Person 資料表拖曳到 O/R Designer 上,並將其名稱變更為 Employee

  4. Person 物件中刪除 Manager 屬性。

  5. Employee 物件中刪除 TypeIDFirstNameLastName 屬性。 (換句話說,刪除 除 Manager 之外的所有屬性。

  6. [工具箱][物件關聯設計師] 索引標籤中,在 [人員][員工] 物件之間建立 [繼承關係]。 若要這樣做,請按一下 [工具箱] 中的 [繼承] 項目,然後放開滑鼠按鈕。 接下來,按一下 [員工] 物件,然後按一下 [O/R 設計工具] 中的 [人員] 物件。 繼承行上的箭頭接著會指向 Person 物件。

  7. 按一下設計畫面上的繼承行。

  8. [鑑別器屬性] 屬性設定為 [類型]。

  9. 衍生類別鑑別值 屬性設定為 2

  10. [基底類別鑑別值] 屬性設定為 1

  11. 繼承預設 屬性設定為 Person

  12. 建置專案。

查詢繼承的類別,並在表單上顯示資料

您現在將一些程式碼新增至表單,以查詢物件模型中的特定類別。

建立 LINQ 查詢並在表單上顯示結果

  1. ListBox 拖曳至 Form1

  2. 按兩下表單以建立 Form1_Load 事件處理常式。

  3. 將下列程式碼加入至 Form1_Load 事件處理常式:

    NorthwindDataContext dc = new DataClasses1DataContext();
    var results = from emp in dc.Persons
                  where emp is Employee
                  select emp;
    
    foreach(Employee Emp in results)
    {
        listBox1.Items.Add(Emp.LastName)
    }
    

測試應用程式

執行應用程式,並確認清單方塊中顯示的記錄都是員工 ( 其類型 欄中值為 2 的記錄)。

測試應用程式

  1. F5

  2. 確認只顯示其 「類型 」欄中值為 2 的記錄。

  3. 關閉表單。 (在 [偵錯] 功能表上,按一下 [停止偵錯]。