我怎么能使实体框架TPT继承建立一个表每个类型

本文关键字:一个 类型 建立 怎么能 实体 框架 继承 TPT | 更新日期: 2023-09-27 18:15:37

我试图使继承TPT实体框架为每种类型构建表。我搜索了网站,看到了所有,但我基于他们的代码只会为所有人建立一个表这是我的类

    public class Foo
{
    [Key]
    public int Id { get; set; }
    public int MainFooProp { get; set; }
}
public class FooA : Foo
{
    public int FooAProp { get; set; }
}
public class FooB : Foo
{
    public int FoobProp { get; set; }
}

和我的上下文是

 public DbSet<FooA> FooAs { get; set; }
 public DbSet<FooB> FooBs { get; set; }

,在modelBuilder中我使用

modelBuilder.Entity<Foo>().ToTable("Foos")
        .Map<FooA>(fa => fa.Requires("FooType").HasValue(1))
        .Map<FooB>(fb => fb.Requires("FooType").HasValue(2));

我希望它为每个包括Foo建立一个表它应该生成如下图所示的东西我真正想要的图表

,但不幸的是,它只创建一个包含所有属性的表。对不起,伙计们,但我真的很想让它工作

我怎么能使实体框架TPT继承建立一个表每个类型

看起来答案被删除了,所以我使用的解决方案

modelBuilder.Entity<Foo>().ToTable("Foos") 
modelBuilder.Entity<FooA>().ToTable("Foos")
modelBuilder.Entity<FooB>().ToTable("Foos")1