【译】第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的讲解以及一些具体的例子

转载于:https://www.cnblogs.com/talentzemin/p/7131415.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值