7.翻譯系列:EF 6中的繼承策略(EF 6 Code-First 系列)

       原文地址:http://www.entityframeworktutorial.net/code-first/inheritance-strategy-in-code-first.aspxhtml

 

EF 6 Code-First系列文章目錄:web

 

       

咱們已經在Code-First 默認約定中學習到,EF將會爲每個具體的領域類建立數據庫表。然而,你能夠使用繼承來設計你的領域類。面向對象技術包含一個has a和 is a的關係,然而基於SQL的關係模型,在數據表之間只有 has a關係。SQL 數據庫管理系統不支持類型的繼承,那麼怎麼來映射面向對象設計的領域類和關係型數據庫呢?數據庫

在Code-First模式中,有3種不一樣的方法,來實現繼承層級關係。app

  1. Table per Hierarchy (TPH):這種方法建議是爲整個類的繼承層級,建立一個表。【例如Student實體,繼承了BaseEntity實體(包含3個屬性:ID、AddedDate、ModifiedDate),那麼到時候就仍是生成一個Students表,只不過Students表裏麪包含BaseEntity實體的這三個屬性列】。這個方法建立的表,包含一個鑑定列,能夠區分類之間的繼承關係。這個方法也是EF中默認的繼承映射策略。
  2. Table per Type (TPT):這種方法,建議爲每一個單獨的領域類,建立一個單獨的數據庫表。
  3. Table per Concrete Class (TPC):這個方法建議爲每個具體的類,建立一個數據庫表,可是抽象類除外。因此,若是你在多個具體的類中繼承了抽象類,那麼抽象類的屬性就會在每一個具體類所生成的數據表中。

這裏咱們不會詳細介紹這三種方法。想要了解更多詳細細節,請訪問下面的三個連接:asp.net

  1. Inheritance with EF Code First: Table per Hierarchy (TPH)
  2. Inheritance with EF Code First: Table per Type (TPT)
  3. Inheritance with EF Code First: Table per Concrete class (TPC)

 你們請注意:這三篇文章,我後面會翻譯。謝謝你們支持。ide

相關文章
相關標籤/搜索