Eins-zu-eins-Beziehung mit der Entity Framework Fluent API
Ich habe Probleme mit der Rückwärtsnavigation auf einer meiner Einheiten.
Ich habe die folgenden zwei Objekte:
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; }
}
Jetzt funktioniert meine Fremdschlüsselnavigation für das CandidateData-Objekt einwandfrei. Ich habe Probleme, die Rückwärtsnavigation für das Kandidatenobjekt zum Funktionieren zu bringen (falls dies überhaupt möglich ist).
Dies ist meine OnModelCreating-Funktion:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<Candidate>()
.HasOptional(obj => obj.Data)
.WithOptionalPrincipal();
base.OnModelCreating(modelBuilder);
}
Es funktioniert fast, außer in der Datenbank werden zwei Spalten angezeigt, die auf die CandidateId verweisen. Ich erhalte die, die ich vom POCO-Objekt erhalte, die andere Spalte Candidate_CandidateId, von der ich annehme, dass sie vom modelBuilder erstellt wurde.
Ich bin im Moment ziemlich verloren. Kann jemand bitte etwas Licht auf das werfen, was los ist?