多对多自定义连接表

你可能希望重命名连接表中的字段以使其更友好。你可以使用常用的配置方法执行此操作(同样,从哪个方面进行配置并不重要):

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() )。这给了你完全相同的架构: