Asignación de clave externa en la relación HasOptional (). WithOptionalDependent () en Entity Framework 6

Tengo el siguiente modelo de datos en Entity Framework 6.1.3:

using System.Data.Entity;

public class Student
{
    public int Id { get; set; }
    public virtual Contact Contact { get; set; }
}

public class Contact
{
    public int Id { get; set; }
    public virtual Student Student { get; set; }
}

public class MyContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder builder)
    {
        builder.Entity<Contact>()
            .HasOptional(x => x.Student)
            .WithOptionalDependent(x => x.Contact)
            .WillCascadeOnDelete(true);
    }
}

public static class Program
{
    private static void Main()
    {
        Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());

        using (var context = new MyContext())
            context.Database.Initialize(force: true);
    }
}

Cuando lanzo este código, obtengo exactamente la estructura de tabla correcta a la que apunto:

dbo.Contacts
    Id (PK)
    Student_Id (FK, NULL, CASCADE ON DELETE)

dbo.Students
    Id (PK)

Sin embargo, ahora me gustaría agregar elStudent_Id propiedad que estará disponible en elContact entidad. Entonces puedo leer elStudent_Id sin necesidad de unirse a la otra mesa a través de.Student.Id navegación.

Si agrego la propiedad a laContact entidad, termino con dos columnasStudent_Id yStudent_Id1, o termino con un mensaje de error que diceEach property name in a type must be unique..

La columna ya está en la base de datos, todo lo que necesito es tenerla también en la entidad, ¿por qué hay tantos problemas? ¿Hay alguna solución?

Respuestas a la pregunta(2)

Su respuesta a la pregunta