有没有办法控制桥实体创建的表的名称?现在,如果我运行这个:
public class Foo
{
public Int32 FooId { get; set; }
public virtual ICollection<Bar> Bars { get; set; }
}
public class Bar
{
public Int32 BarId { get; set; }
public virtual ICollection<Foo> Foos { get; set; }
}
生成的桥表名为BarFoo,无论如何都可以使它成为FooBar?
答案 0 :(得分:5)
您可以通过如下映射自定义表名。
public class MyContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Foo>()
.HasMany(e => e.Bars)
.WithMany(s => s.Foos)
.Map(l =>
{
l.ToTable("FooBar");
l.MapLeftKey("FooId");
l.MapRightKey("BarId");
}
);
}
}
答案 1 :(得分:1)
查看EntityTypeConfiguration
和流畅的配置API。那里有一个HasMany()方法,可以做你想要的。