2012-09-14 33 views
2

我給代碼第一次嘗試,並且我要求在數據庫中有(全部)我的表的前綴。首先在EF代碼中生成關係表的映射名稱

在我的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

回答

5

我已經解決了這個:

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