Почему EF сначала генерирует столбец с внешним ключом?

Я использую Code Entity Framework для автоматического создания схемы базы данных, и одна из моих сущностей выглядит следующим образом:

public class AssessmentsCaseStudies {
    #region Persisted fields
    [Required]
    [Key, Column(Order=0)]
    [ForeignKey("Assessment")]
    public int AssessmentId { get; set; }

    [Required]
    [Key, Column(Order=1)]
    [ForeignKey("CaseStudy")]
    public int CaseStudyId { get; set; }

    [Required]
    public int Score { get; set; }

    [ForeignKey("Follows")]
    public int? FollowsCaseStudyId { get; set; }
    #endregion

    #region Navigation properties
    public virtual Assessment Assessment { get; set; }
    public virtual CaseStudy CaseStudy { get; set; }
    public virtual CaseStudy Follows { get; set; }
    #endregion
}

Когда EF автоматически генерирует мою базу данных, он генерирует таблицу со следующими столбцами:

AssessmentId (PK, FK, int, not null)
CaseStudyId (PK, FK, int, not null)
Score (int, not null)
FollowsCaseStudyId (FK, int, null)
CaseStudy_CaseStudyId (FK, int, null)

Это все хорошо, кромеCaseStudy_CaseStudyId колонка. Почему это было сгенерировано? Для чего это? Как я могу остановить это генерируется? Я подозреваю, что EF больше не может автоматически совпадать сCaseStudyICollection сCaseStudyId столбец, поэтому он создает свой собственный столбец, чтобы связать их вместе для этого свойства навигации.

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

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