Masterseitige Definition in Entity Framework 1:1-Beziehung
Was ist das Hauptterminal?
In einer 1:1-Beziehung muss eine Entität als Master und die andere Entität als Slave bestimmt werden. Der Master ist die Entität, die die Beziehung besitzt oder für deren Aufrechterhaltung verantwortlich ist, während der Slave von der Existenz der Master-Entität abhängt.
Codefehleranalyse
Der Fehler, auf den Sie im Entity Framework stoßen, wird dadurch verursacht, dass die Hauptseite die Beziehung zwischen Foo und Boo nicht klar definiert. Entity Framework erfordert diese Spezifikation, um zu bestimmen, welcher Primärschlüssel der Entität als Fremdschlüssel für die untergeordnete Entität verwendet wird.
Herr und Sklave in 1:1-Beziehung
In Ihrem Code ist die Beziehung zwischen Foo und Boo eine Eins-zu-Eins-Beziehung. So identifizieren Sie den Master:
In Ihrem Beispiel sollte Foo der Master sein, da es unabhängig von der Boo-Entität existieren kann. Boo hingegen ist auf Foo angewiesen, da es den Foo-Primärschlüssel in die Datenbank einfügen muss.
Hauptterminal konfigurieren
Es gibt zwei Möglichkeiten, die Masterseite einer 1:1-Beziehung in Entity Framework zu konfigurieren:
Fluent Mapping:
<code class="language-csharp">modelBuilder.Entity<Foo>() .HasOptional(f => f.Boo) .WithRequired(s => s.Foo);</code>
Datenanmerkung:
<code class="language-csharp">public class Foo { [Key] public string FooId { get; set; } public Boo Boo { get; set; } } public class Boo { [Key, ForeignKey("Foo")] public string BooId { get; set; } public Foo Foo { get; set; } }</code>
Durch die Definition des Masters geben Sie an, dass Foo Eigentümer der Beziehung ist und Boo nur existieren kann, wenn der entsprechende Foo-Datensatz vorhanden ist.
Das obige ist der detaillierte Inhalt vonWie definiere ich das Hauptende in den 1:1-Beziehungen von Entity Framework?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!