我有以下类层次结构
public class A
{
public int Id { get; set; }
public virtual IColection<B> Items {get; set; }
}
public abstract class B
{
public int Id {get; set; }
public A Parent {get; set; }
}
public class C : B
{
public String Name {get; set; }
}
我正在尝试对每个具体类型层次结构映射使用 Table 并将以下代码用于 DataContext
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<C>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("C_Table");
});
}
实体框架仍然创建两个表。一个用于 B 类,包括外键的 Id 和 A_Id 字段。C 的第二个,除了对 A 的引用之外的所有字段。
是否可以配置 EF 不为 B 创建表?我想为每个派生类创建单独的表,但没有公用表。