Я использую сущность framework code-first, чтобы автоматически создать мою схему базы данных, и один из моих объектов выглядит следующим образом:
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<AssessmentsCaseStudies>
с столбцом CaseStudyId
, поэтому он создает свой собственный столбец, чтобы связать их вместе для этого свойства навигации.