我首先尝试使用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
答案 0 :(得分:5)
我已经解决了这个问题:
modelBuilder.Entity<Person>().HasMany(p => p.Departments)
.WithMany(d => d.People)
.Map(mc => mc.ToTable("w_peopledepartments"));