Внешний ключ EF с использованием Fluent API

Вот мои модели. У меня есть один в один для автомобиля и водителя. Сначала я создам автомобиль, а затем сопоставлю водителя с транспортным средством.

public class Driver
{
    public int Id { get; set; }
    public String Name { get; set; }
    public int VehicleId { get; set; }
    public virtual Vehicle Vehicle  { get; set; }
}

public class Vehicle
{  
    public int Id { get; set; }
    public String Name { get; set; }

    public virtual Driver Driver { get; set; }

    public int VehicleGroupId { get; set; }
    public virtual VehicleGroup Vehicles { get; set; }
}

Я хочу использовать свойство VehicleId в классе Driver, чтобы сохранить идентификатор транспортного средства, за которым ездит водитель.

Я написал следующий код Fluent API:

modelBuilder.Entity<Vehicle>()
            .HasRequired(d => d.Driver)
            .WithRequiredPrincipal();

Но он создает новый столбец в таблице Drivers - Vehicle_VehicleId и сопоставляет его с VehicleId в таблице Vehicle. Я хочу, чтобы таблица VehicleId of Driver отображалась.

Кроме того, я новичок в EF и Fluent API. Я нахожу это чрезвычайно запутанным выбором между WithRequiredDependent и WithRequiredPrincipal. Буду рад, если вы сможете описать это простыми словами. Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос