我有几个实体,都继承了带有审计和 ID 字段的基本实体。在每个属性的配置中,我都有完全相同的行,例如:
this.HasKey(t0 => t0.Id)
.Map(m => m.ToTable("templates"))
.Property(x => x.Id)
.HasColumnName("id")
...................
有没有办法将此代码移动到某种“基本配置”而不是为每个实体编写它?
我有几个实体,都继承了带有审计和 ID 字段的基本实体。在每个属性的配置中,我都有完全相同的行,例如:
this.HasKey(t0 => t0.Id)
.Map(m => m.ToTable("templates"))
.Property(x => x.Id)
.HasColumnName("id")
...................
有没有办法将此代码移动到某种“基本配置”而不是为每个实体编写它?
您需要做的就是实现 Table-Per-Type 或 Table-Per-Hierarchy:
在 Table-Per-Type 中,您的实体将被拆分为不同的表,但所有分支表的 PK 都将是基本实体表的 FK。
在 Table-Per-Hierarchy 中,您的实体都将位于一个表中,但 EF 将生成一个鉴别器来辨别实体实际上属于哪个对象类型。
有关这方面的更清晰示例,请查看此站点上的帖子。