2

我首先尝试使用 Code,并且我需要在 db 中的(所有)表的前缀。

在我的 DbContext 中,我有这些实体:

    public DbSet<Person> People { get; set; }
    public DbSet<Department> Departments { get; set; }

我可以通过覆盖成功地为我的实体映射表名:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Person>().ToTable("w_people");
        modelBuilder.Entity<Department>().ToTable("w_departments");
    }

但是,对于创建的不直接映射到表的表,我无法确定前缀。

在我的示例中,人们可以属于许多部门,因此 EF 创建了一个“非实体”表。(我是一个 EF 菜鸟,所以这些表可能有一个花哨的名字)所以在我的数据库中,我得到了三个表:

w_people
w_departments
PersonsDepartments

PersonsDepartments 表是我所追求的。如何在生成后为这些生成的表添加前缀或更改名称/映射?

TIA

4

1 回答 1

5

我已经解决了这个问题:

modelBuilder.Entity<Person>().HasMany(p => p.Departments)
               .WithMany(d => d.People)
               .Map(mc => mc.ToTable("w_peopledepartments"));
于 2012-09-17T14:00:17.137 回答