Ich verfolge diese Frage: EF Code First - 1-to-1 Optional RelationshipOne-to-One optional Beziehung mit beiden Enden optional und beide FKs
Und ich habe meine Beziehungen setzen sich wie folgt zusammen:
public class Review {
[Key]
public int ReviewId { get; set; }
public virtual Payment Payment { get; set; }
}
public class Payment {
[Key]
public int PaymentId { get; set; }
[ForeignKey("Review")]
public int? ReviewId { get; set; }
public virtual Review Review { get; set; }
}
public class ReviewConfiguration : EntityTypeConfiguration<Review>
{
public ReviewConfiguration()
{
// One-to-One Optional
HasOptional<Payment>(s => s.Payment).WithOptionalDependent(s => s.Review).Map(s => s.MapKey("PaymentId"));
}
}
Und ich ONE erhalten der Schlüssel gültig ist, aber das andere ist nie als optionales FK abgebildet:
Was mache ich falsch?
Ich habe einige seltsame Hacky-Lösungen gesehen, die das Erstellen leerer Listen usw. beinhalten - nicht das, wonach ich suche. Ich bin auf der Suche nach einem richtigen Ansatz hier - es hat zu existieren ... richtig?
aktualisieren
ich die oben jetzt mit - wenn ich die Zahlung auf der Hand und brauchen die Bewertung zuzugreifen oder zu löschen, ich habe eine andere Lookup auf dem [pseudo-FK] ReviewId zu tun, was total scheiße ist.
Dies kann nicht Ihr Modell + Mapping sein. Es gibt Fehler * Die Navigationseigenschaft "Review", die für den Typ "Zahlung" deklariert wurde, wurde mit in Konflikt stehenden Fremdschlüsseln konfiguriert. * –
@GertArnold genau so habe ich es. Einfach doppelt und dreifach überprüft. Haben Sie PaymentId bei Überprüfung? Ich nicht. Danke, dass du es übrigens ausprobiert hast. Extrem frustrierendes Zeug. – RobVious
Seltsam. Sowieso. EF benötigt die FK ReviewId nicht. Mit der einen optionalen FK PaymentId weiß es genug, um die Assoziation bidirektional aufzubauen. –