Clave externa EF utilizando Fluent API

Aquí están mis modelos. Tengo mapeo uno a uno para Vehículo y Conductor. Primero crearé el vehículo y luego mapearé al conductor con el vehículo.

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; }
}

Quiero usar la propiedad VehicleId en la clase de conductor para mantener la identificación del vehículo que conduce el conductor.

He escrito el siguiente código de Fluent API:

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

Pero crea una nueva columna en la tabla Controladores: Vehicle_VehicleId y la asigna a la tabla VehicleId on Vehicle. Quiero que la tabla VehicleId of Driver se asigne.

Además, soy nuevo en EF y Fluent API. Me resulta extremadamente confuso elegir entre WithRequiredDependent y WithRequiredPrincipal. Estaría contento si lo puedes describir en palabras simples. Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta