【CodeFirst Tutorial】 继承策略(Inheritance Strategy)

查看原文

我们已经学习了可以为每个具体域类生成数据库表的 Code-First 约定,然而,我们可以使用继承来设计域类。面向对象技术包含 "has a" 和 "is a" 的关系,而基于SQL的关系模型只包含表与表之间的 "has a" 关系。SQL数据库管理系统不支持继承类型,那么,我们如何将面向对象域类映射到关系数据库?

以下是三种解决 Code-First 中继承架构问题的方法:

1、Table per Hierarchy (TPH):这种方法建议为整个类继承架构生成一个表。这个表包含了鉴别器列,可以辨别继承类。这是EF中默认的继承映射策略。获取更多详细信息

2、Table per Type (TPT):这种方法建议为每个域类分别建表。获取更多详细信息

3、Table per Concrete class (TPC):这个方法建议为每个具体类建表,但不需为抽象类建表。因此,如果你有多个具体类继承了抽象类,那么,抽象类的属性将成为每个具体类的表中的一部分。获取更多详细信息

在之前的文章中,我们已经看到了默认的 Code First 约定,接下来我们要学习如何配置域类,使之重写这些约定。

原文地址:https://www.cnblogs.com/ztpark/p/6830399.html