共用方式為


實體資料模型:繼承

實體資料模型 (EDM) 支援實體類型的繼承。 EDM 中的繼承類似於物件導向程式設計語言中的類別繼承。 如同物件導向語言中的類別,在概念模型中,您可以定義繼承自另一個實體類型 (「基底類型」(Base Type)) 的實體類型 (「衍生型別」(Derived Type)) 。 不過,不同於物件導向程式設計中的類別,在概念模型中,衍生型別永遠會繼承基底類型的所有屬性導覽屬性。 您不能覆寫衍生型別中的繼承屬性。

在概念模型中,您可以組建繼承階層,其中的衍生型別繼承自另一種衍生型別。 階層上層的型別 (階層中非衍生型別的型別) 稱為「根型別」(Root Type)。 在繼承階層中,必須在根型別定義實體索引鍵

您不可建置衍生型別繼承自多個型別的繼承階層。 例如,在具有 Book 實體類型的概念模型中,您可以定義分別繼承自 Book 的衍生型別 FictionBookNonFictionBook。 不過,您可能無法定義同時繼承自 FictionBookNonFictionBook 型別的型別。

範例

下圖顯示包含四種實體類型 (BookFictionBookPublisherAuthor) 的概念模型: FictionBook 實體類型為衍生型別,繼承自 Book 實體類型。 FictionBook 型別繼承自 ISBN (Key)TitleRevision 屬性,並且定義稱為 Genre 的額外屬性。

繼承

ADO.NET Entity Framework 會使用稱為概念結構定義語言 (CSDL) 的特定定義域語言 (DSL) 來定義概念模型。 下列 CSDL 定義實體類型 FictionBook,此實體類型繼承自 Book 型別 (如上圖所示):

<EntityType Name="FictionBook" BaseType="BooksModel.Book" >
  <Property Type="String" Name="Genre" Nullable="false" />
</EntityType>

另請參閱

概念

實體資料模型索引鍵概念
實體資料模型