多对多自定义连接表
你可能希望重命名连接表中的字段以使其更友好。你可以使用常用的配置方法执行此操作(同样,从哪个方面进行配置并不重要):
public class CarEntityTypeConfiguration : EntityTypeConfiguration<Car>
{
public CarEntityTypeConfiguration()
{
this.HasMany(c => c.Owners).WithMany(p => p.Cars)
.Map(m =>
{
m.MapLeftKey("OwnerId");
m.MapRightKey("CarId");
m.ToTable("PersonCars");
}
);
}
}
甚至很容易阅读:这辆车有很多车主( HasMany()
),每个车主都有很多车( WithMany()
)。映射这个,以便将左键映射到 OwnerId( MapLeftKey()
),将右键映射到 CarId( MapRightKey()
),将整个映射映射 到表 PersonCars( ToTable()
)。这给了你完全相同的架构: