Почему 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 больше не может автоматически совпадать сCaseStudy
ICollection
сCaseStudyId
столбец, поэтому он создает свой собственный столбец, чтобы связать их вместе для этого свойства навигации.