继承(关系数据库)

    EF 模型中的继承被用来控制实体类型继承在数据库中的表现方式。

    EF 将只会在两个或多个继承类型被显式包含到模型中时建立继承(详见 继承)。

    以下样例展示了一个简单类层次结构的场景,其中的数据使用 TPH 模式被存储到关系数据库中。识别列 标识了每一行所存储的 Blog 类型。

    不能使用数据注解来配置继承。

    可以使用流式 API 来配置识别列的类型和名称,以及用于辨别类层次结构中的类型的值。

    1. class MyContext : DbContext
    2. {
    3. public DbSet<Blog> Blogs { get; set; }
    4. protected override void OnModelCreating(ModelBuilder modelBuilder)
    5. modelBuilder.Entity<Blog>()
    6. .HasValue<Blog>("blog_base")
    7. .HasValue<RssBlog>("blog_rss");
    8. }
    9. }
    10. public class Blog
    11. public string Url { get; set; }
    12. }
    13. public class RssBlog : Blog
    14. {
    15. public string RssUrl { get; set; }
    16. }