1

我正在尝试使用 CodeFirst 生成数据库,但没有生成表。类模型关系:(-> 表示继承者)EntityBase -> Company -> Customer

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);

在我的上下文中,我只有 Company 和 Customer。CodeFirst 生成 Company 表,但不生成 Customer 表。是因为我的模型中的继承,因为我尝试使用“平面”域类模型它工作正常。请,任何建议都将受到高度赞赏。

4

1 回答 1

1

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

modelBuilder.Entity<Customer>()
            .ToTable("Customer");
于 2013-02-26T10:56:32.087 回答