Um a zero ou um com HasForeignKey

Eu tenho dois modelos:

public class Person
{
    public virtual int Id { get; set; }
    public virtual Employee Employee { get; set; } // optional
}

public class Employee
{
    public virtual int Id { get; set; }
    public virtual int PersonId { get; set; }

    public virtual Person Person {get; set; } // required
}

public class EmployeeConfiguration : EntityTypeConfiguration<Employee>
{
    public EmployeeConfiguration()
    {
        Property(e=>e.PersonId) // I need this property mapped
            .HasColumnName("person_id")
            .HasColumnType("int");
    }
}

Eu quero mapeá-los usando mapeamento fluente. A tabela de funcionários tem a coluna 'person_id', que não é anulável. Eu tentei seguir:

HasRequired(e => e.Person)
    .WithOptional(p => p.Employee)
    .Map(m => m.MapKey("person_id"));

Mas isso falha com:

System.Data.Entity.ModelConfiguration.ModelValidationException: Um ou mais erros de validação foram detectados durante a geração do modelo:

person_id: Name: Cada nome de propriedade em um tipo deve ser exclusivo. O nome da propriedade 'person_id' já está definido.

Eu preciso da propriedade PersonId por conta própria, então o que eu basicamente quero é:

HasRequired(e => e.Person)
    .WithOptional(p => p.Employee)
    .HasForeignKey(e => e.PersonId); // there is no such method

Masnão existe tal método aqui como HasForeignKey

questionAnswers(2)

yourAnswerToTheQuestion