Mapeando chave estrangeira na relação HasOptional (). WithOptionalDependent () no Entity Framework 6

Eu tenho o seguinte modelo de dados no 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);
    }
}

Ao iniciar esse código, obtenho exatamente a estrutura de tabela correta que pretendo:

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

dbo.Students
    Id (PK)

No entanto, agora eu gostaria de adicionar oStudent_Id propriedade para estar disponível noContact entidade. Para que eu possa ler oStudent_Id sem precisar ingressar na outra tabela através.Student.Id navegação.

Se eu adicionar a propriedade aoContact entidade, acabo com duas colunasStudent_Id eStudent_Id1, ou eu acabo com uma mensagem de erro dizendoEach property name in a type must be unique..

A coluna já está no banco de dados, tudo o que preciso é tê-la na entidade também, por que há tanto problema? Há uma solução?

questionAnswers(2)

yourAnswerToTheQuestion