Ich habe Probleme mit der umgekehrten Navigation auf einer meiner Entitäten.Eins-zu-Eins-Beziehung mit Entity Framework Fluent API
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; }
}
Nun mein Fremdschlüssel Navigation auf dem CandidateData Objekt funktioniert. Ich habe Probleme, die umgekehrte Navigation für das Kandidatenobjekt zu erhalten (wenn das ü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 liegt in der Nähe arbeiten, außer in der Datenbank habe ich zwei Spalten erhalten, die mit dem CandidateId verknüpfen. Ich bekomme die eine I vom POCO-Objekt die ich bekomme eine andere Spalte Candidate_CandidateId Ich nehme an, wurde vom ModelBuilder erstellt.
Ich bin im Moment leise verloren. Kann jemand bitte etwas Licht auf das werfen, was vor sich geht?
Warum definieren Sie ein zusätzliches Feld wie [Erforderlich] public long CandidateId {get; einstellen; } Entfernen Sie es und Ihre Probleme werden –
Ich denke, Ihre Beziehung sollte ModelBuilder.Entity sein() .HasOptional (obj => obj.Data) .WithRequired (e => e.Candidate); BTW: versuche nicht fließende API und Attribute zu mischen. –
tschmit007