流暢的API表腳手架 - HasBaseType

c# ef-fluent-api entity-framework entity-framework-core fluent

我的項目StudentTeacher有兩個實體,它們共享一個公共基類AccountModel 。基類包含學生和教師都需要的屬性(在語義上,學生和教師都是帳戶持有者,並且為了良好實踐,這可以防止違反DRY原則)

在我的Fluent API配置中,我有:

builder
    .Ignore<AccountModel>();

builder
    .Entity<Student>()
    .HasBaseType<AccountModel>()
    .ToTable("Students");

builder
    .Entity<Teacher>()
    .HasBaseType<AccountModel>()
    .ToTable("Teachers");

但是,當EF腳手架遷移,並生成一個新的數據庫,我得到一個AccountModel表,但不是StudentsTeachers表。是什麼賦予了?

一般承認的答案

目前,Entity Framework Core僅支持用於映射繼承的表每層次結構(TPH)模式( http://www.learnentityframeworkcore.com/inheritance ),這就是遷移導致所有類型的一個表的原因。

每個具體類型的表 (TPC)在積壓工作中並且正在被考慮, 每種類型 (TPT)模式也是如此。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow