首先在EF代码中映射生成的关系表的名称

Mag*_*son 2 entity-framework ef-code-first

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

在我的DbContext中,我有以下实体:

    public DbSet<Person> People { get; set; }
    public DbSet<Department> Departments { get; set; }
Run Code Online (Sandbox Code Playgroud)

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

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

但是对于那些不直接映射到表的表,我无法想出前缀.

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

w_people
w_departments
PersonsDepartments
Run Code Online (Sandbox Code Playgroud)

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

TIA

Mag*_*son 5

我解决了这个问题:

modelBuilder.Entity<Person>().HasMany(p => p.Departments)
               .WithMany(d => d.People)
               .Map(mc => mc.ToTable("w_peopledepartments"));
Run Code Online (Sandbox Code Playgroud)