表格不是使用代码生成的

时间:2013-02-26 10:45:01

标签: entity-framework ado.net ef-code-first

我正在尝试使用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'域类模型,它工作得很好。 请高度赞赏任何建议。

1 个答案:

答案 0 :(得分:1)

是的,这是因为继承。默认情况下,使用 TPH (每个层次结构的表)继承。因此,您有一个 Company 表,其中包含层次结构中类的所有属性。添加ToTable映射以实现 TPT (每种类型的表)继承。

modelBuilder.Entity<Customer>()
            .ToTable("Customer");