缺省情况下,EF使用table-per-hierarchy(TPH)映射继承关系,TPH使用一张单表保存继承关系中所有类型的数据,使用一个识别列(Discriminator)区分不同的类型。这个列的名称和不同类型保存的值可以定义:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.HasDiscriminator<string>("blog_type")
.HasValue<Blog>("blog_base")
.HasValue<RssBlog>("blog_rss");
}
EF Core 为识别列添加一个隐藏的属性,在查询时根据识别列中的类型过滤出相应的实体。
网友评论