EF Core 存储继承关系 Table-per-hierarchy

缺省情况下,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 为识别列添加一个隐藏的属性,在查询时根据识别列中的类型过滤出相应的实体。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容