我的项目Student
和Teacher
中有两个实体共享一个公共基类AccountModel
。基类包含学生和教师都需要的属性(在语义上,学生和教师都是帐户持有者,并且在良好实践中,这可以防止违反DRY原则)
在我的Fluent API配置中,我有:
builder
.Ignore<AccountModel>();
builder
.Entity<Student>()
.HasBaseType<AccountModel>()
.ToTable("Students");
builder
.Entity<Teacher>()
.HasBaseType<AccountModel>()
.ToTable("Teachers");
但是当EF支持迁移并生成新数据库时,我得到一个AccountModel
表,而不是Students
或Teachers
表。是什么给了什么?
答案 0 :(得分:3)
目前,Entity Framework Core仅支持用于映射继承的表每层次结构(TPH)模式(http://www.learnentityframeworkcore.com/inheritance),这就是迁移导致所有类型的一个表的原因。
Table per concrete type(TPC)正在积压中,正在考虑中,Table Per Type(TPT)模式也是如此。