Heim > Backend-Entwicklung > C++ > Wie definiere ich das Hauptende in den 1:1-Beziehungen von Entity Framework?

Wie definiere ich das Hauptende in den 1:1-Beziehungen von Entity Framework?

Susan Sarandon
Freigeben: 2025-01-21 22:36:11
Original
901 Leute haben es durchsucht

How to Define the Principal End in Entity Framework's 1:1 Relationships?

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:

  • Hauptende: Ein Ende, das unabhängig existieren kann, d. h. die Entität, die für die Erstellung oder Aufrechterhaltung von Beziehungen verantwortlich ist.
  • Slave-Ende: Ein Ende, das vom Master-Ende abhängt, dh eine Entität, die nur existieren kann, wenn das Master-Ende existiert.

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage