Отношения один к одному с Entity Framework Fluent API

У меня проблемы с обратной навигацией на одном из моих объектов.

У меня есть следующие два объекта:

public class Candidate
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long CandidateId { get; set; } 
    ....

    // Reverse navigation
    public virtual CandidateData Data { get; set; }
    ...

    // Foreign keys
    ....
}

public class CandidateData
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long CandidateDataId { get; set; }

    [Required]
    public long CandidateId { get; set; }

    // Foreign keys
    [ForeignKey("CandidateId")]
    public virtual Candidate Candidate { get; set; }
}

Теперь моя внешняя клавиша навигации по объекту CandidateData работает нормально. У меня проблемы с получением обратной навигации для объекта-кандидата для работы (если это вообще возможно).

Это моя функция OnModelCreating:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

    modelBuilder.Entity<Candidate>()
        .HasOptional(obj => obj.Data)
        .WithOptionalPrincipal();

    base.OnModelCreating(modelBuilder);
}

Это близко к работе, за исключением того, что в базе данных я получаю два столбца, которые ссылаются на CandidateId. Я получаю один из объекта POCO и получаю другой столбец Candidate_CandidateId, который, как я полагаю, был создан modelBuilder.

Я тихо потерян в данный момент. Может кто-нибудь, пожалуйста, пролить свет на то, что происходит?

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

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