共用方式為


HOW TO:使用 O/R 設計工具設定繼承

物件關聯式設計工具 (O/R 設計工具) 通常是在關聯式系統中實作,因此支援單一資料表繼承概念。在單一資料表繼承中,單一資料庫資料表的欄位會同時包含父代資訊和子系資訊。使用關聯式資料時,鑑別子資料行所含的值會決定任何記錄所屬的類別 (Class)。

例如,假設有個 Persons 資料表包含某家公司雇用的所有人員。有些人是員工,而有些人是經理。這個 Persons 資料表包含一個名為 EmployeeType 的資料行 (其中值 1 代表經理,值 2 代表員工),這就是鑑別子資料行。在這個案例中,您可以建立員工子類別 (Subclass),並且只將 EmployeeType 值為 2 的記錄填入 (Populate) 這個類別。您也可以從每個類別中移除不適用的資料行。

建立使用繼承的物件模型 (並對應至關聯式資料) 在過程上較為複雜。下列程序將會說明使用 O/R 設計工具設定繼承的必要步驟。因為在不參考現有資料表和資料行的情況下遵循這些泛型步驟,將是一件困難的事,所以提供了使用資料的逐步解說。如需使用 O/R 設計工具設定繼承的詳細逐步指示,請參閱逐步解說:使用單一資料表繼承建立 LINQ to SQL 類別 (O/R 設計工具)

若要建立繼承的資料類別

  1. 將 [LINQ to SQL 類別] 項目加入至現有 Visual Basic 或 C# 專案,以開啟 O/R 設計工具。

  2. 將想要當成基底類別 (Base Class) 的資料表拖曳至 O/R 設計工具。

  3. 將這個資料表複製一份複本並拖曳至 O/R 設計工具,然後將它重新命名。這就是衍生類別 (Derived Class) 或子類別。

  4. 在 [工具箱] 的 [物件關聯式設計工具] 索引標籤中按一下 [繼承],然後按一下子類別 (重新命名的資料表),將它連接至基底類別。

    注意

    按一下 [工具箱] 中的 [繼承] 項目,然後放開滑鼠按鍵、按一下在步驟 3 中建立的第二個類別複本,再按一下在步驟 2 中建立的第一個類別。繼承線的箭號會指向第一個類別。

  5. 在每個類別中,刪除任何不想要顯示而且沒有用於關聯的物件屬性。如果您嘗試刪除用於關聯的物件屬性,就會收到錯誤:無法刪除屬性 <屬性名稱>,因為它正參與關聯 <關聯名稱>

    注意

    因為衍生類別會繼承其基底類別中定義的屬性,所以這兩個類別中不可以定義相同的資料行 (資料行是以屬性形式實作)。在基底類別的屬性上設定 [繼承修飾詞],就可以啟用衍生類別中的資料行建立作業。如需詳細資訊,請參閱Overriding Properties and Methods

  6. 選取 O/R 設計工具中的繼承線。

  7. 在 [屬性] 視窗中,將 [鑑別子屬性] 設定為類別中用於辨別記錄的資料行名稱。

  8. 將 [衍生類別鑑別子值] 屬性設定為資料庫中將記錄指定為繼承型別的值 (這是儲存在鑑別子資料行中,用於指定繼承類別的值)。

  9. 將 [基底類別鑑別子值] 屬性設定為將記錄指定為基底類型的值 (這是儲存在鑑別子資料行中,用於指定基底類別的值)。

  10. 您也可以選擇設定 [繼承預設值] 屬性,以指定當載入的資料列不符合任何既定的繼承程式碼時,要依繼承階層架構 (Inheritance Hierarchy) 使用的型別。換句話說,如果記錄的鑑別子資料行值不符合 [衍生類別鑑別子值] 或 [基底類別鑑別子值] 屬性值,就會以指定為 [繼承預設值] 的型別載入記錄。

請參閱

工作

逐步解說:建立 LINQ to SQL 類別 (O/R 設計工具)

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

參考

繼承 (C# 程式設計手冊)

概念

O/R 設計工具概觀

任何內容來做為資料在 Visual Studio 應用程式開發是 2012 的新

其他資源

存取 Visual Studio 中的資料

LINQ to SQL [LINQ to SQL]

Inheritance in Visual Basic