Definiere ich eine Beziehung zwischen zwei Entitäten auf dem abhängigen oder dem Prinzipal?
Wenn ich Entity Framework verwende, wird mir unklar, wo ich eine Beziehung zwischen zwei Entitäten definieren muss. Ich habe das Gefühl, wenn ich nach Beispielen suche, finde ich Beispiele derselben Sache aus zwei verschiedenen Perspektiven - abhängig von → Prinzipal wie auch von Prinzipal → abhängig.
Angesichts der folgenden Entitäten:
class Foo
{
public int Id { get; set; }
public virtual ICollection<Bar> Bars { get; set; }
}
class Bar
{
public int Id { get; set; }
public Foo Foo { get; set; }
public virtual Baz { get; set; }
}
class Baz
{
public int Id { get; set; }
public Bar Bar { get; set; }
}
Wir haben hier mehrere Szenarien.Foo
hat vieleBar
s zeigt darauf.Baz
hat einen optionalen Fremdschlüssel fürBar
. Baz
kann existieren ohneBar
spezifizierten.
Wo würde ich diese Beziehungen definieren? Womit meine ich, wenn ich eine flüssige API verwende, zu welcher Entität würden diese Beziehungen in Bezug stehen? Vielleicht, um es klarer zu machen, wenn ich fließend API undEntityTypeConfiguration
Bindungsklassen, für welche Entität würden diese definiert?
Ein Beispiel dafür, warum ich verwirrt bin, ist, dass ich Antworten wie diese sehedieses Das heißt, dass ein Eins-zu-Eins in der Klasse mit dem definiert werden sollvirtual
. Also in diesen Entitäten das optionale Eins-zu-Eins zwischenBaz
undBar
wäre, oder so ähnlich wie:
modelBuilder.Entity<bar>()
.HasOptional(f => f.Baz)
.WithRequired(s => s.Bar);