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

2022-04-13  本文已影响0人  寻找无名的特质

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

上一篇 下一篇

猜你喜欢

热点阅读