我正在尝试使用CodeFirst生成数据库,但是没有生成表。 类模型关系:( - >表示继承者) EntityBase - >公司 - >客户
FluentAPI配置:
modelBuilder.Entity<Customer>()
.HasKey(k => k.CustomerReference)
.HasRequired(r => r.Company)
.WithMany(m => m.Customers)
.HasForeignKey(f => f.FKCompanyReference);
modelBuilder.Entity<Company>()
.HasKey(c => c.CompanyReference);
我的上下文中只有公司和客户。 CodeFirst生成Company表但不生成Customer表。 是因为我的模型中的继承,因为我尝试使用'flat'域类模型,它工作得很好。 请高度赞赏任何建议。
答案 0 :(得分:1)
是的,这是因为继承。默认情况下,使用 TPH (每个层次结构的表)继承。因此,您有一个 Company 表,其中包含层次结构中类的所有属性。添加ToTable
映射以实现 TPT (每种类型的表)继承。
modelBuilder.Entity<Customer>()
.ToTable("Customer");