多對多自定義連線表

你可能希望重新命名連線表中的欄位以使其更友好。你可以使用常用的配置方法執行此操作(同樣,從哪個方面進行配置並不重要):

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() )。這給了你完全相同的架構: