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
我解决了这个问题:
modelBuilder.Entity<Person>().HasMany(p => p.Departments)
.WithMany(d => d.People)
.Map(mc => mc.ToTable("w_peopledepartments"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1372 次 |
| 最近记录: |