译第7节---映射继承策略

Posted talentzemin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了译第7节---映射继承策略相关的知识,希望对你有一定的参考价值。

原文:http://www.entityframeworktutorial.net/code-first/inheritance-strategy-in-code-first.aspx


我们在之前的部分看到,EF为每个具体的领域类创建数据库表。然而,你可以使用继承来设计域类。
面向对象技术包括“has a”和“is a”关系,而基于SQL的关系模型在表之间只有一个“has a”关系。 SQL数据库管理系统不支持类型继承。那么,将如何使用关系数据库映射面向对象的领域类?


以下是在Code-First中代表继承层次结构的三种不同的方法:

1.Table per Hierarchy (TPH):此方法为整个类继承层次结构提供一个表。表包括区分继承类的标识符列。这是Entity Framework中的默认继承映射策略。

//简单理解:基类和子类都创建在一张表里,通过某个标识字段区分

 

2.Table per Type (TPT):此方法建议为每个类提供单独的表。

//简单理解:基类和子类分别创建表,公共字段在主表,子表只有自己的字段。子表通过主键找到主表

 

3.Table per Concrete class (TPC):此方法为一个具体的类提供了一个表,但不是抽象类。因此,如果您在多个具体类中继承抽象类,那么抽象类的属性将是具体类的每个表的一部分。

//简单理解:子类分别创建表,子表包含基类的所有字段

 

我们在这里不详细介绍,详细信息可参考:EF里的继承映射关系TPH、TPT和TPC的讲解以及一些具体的例子

以上是关于译第7节---映射继承策略的主要内容,如果未能解决你的问题,请参考以下文章

译第31节---数据库初始化策略

JPA实体继承实体的映射策略

JPA实体继承实体的映射策略

框架 day33 Hibernate,组件映射,继承映射,抓取(检索)策略-优化,检索方式总结

SSH快速进阶——Hibernate继承映射:每棵继承树映射一张表

JPA 菜鸟教程 15 继承-一个表-SINGLE_TABLE