Maison > développement back-end > C++ > Comment définir la fin principale dans les relations 1:1 d'Entity Framework ?

Comment définir la fin principale dans les relations 1:1 d'Entity Framework ?

Susan Sarandon
Libérer: 2025-01-21 22:36:11
original
942 Les gens l'ont consulté

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

Définition côté maître dans la relation 1:1 d'Entity Framework

Quel est le terminal principal ?

Dans une relation 1:1, une entité doit être désignée comme maître et l'autre entité comme esclave. Le maître est l'entité qui possède la relation ou est responsable du maintien de la relation, tandis que l'esclave dépend de l'existence de l'entité maître.

Analyse des erreurs de code

L'erreur que vous rencontrez dans Entity Framework est due au fait que le côté principal ne définit pas clairement la relation entre Foo et Boo. Entity Framework nécessite cette spécification pour déterminer quelle clé primaire de l'entité sera utilisée comme clé étrangère pour l'entité subordonnée.

Maître et esclave dans une relation 1:1

Dans votre code, la relation entre Foo et Boo est une relation individuelle. Voici comment identifier le maître :

  • Fin principale : Une fin qui peut exister de manière indépendante, c'est-à-dire l'entité chargée de créer ou d'entretenir des relations.
  • Fin esclave : Une fin qui dépend de la fin maître, c'est-à-dire une entité qui ne peut exister que lorsque la fin maître existe.

Dans votre exemple, Foo devrait être le maître puisqu'il peut exister indépendamment de l'entité Boo. Boo, en revanche, dépend de Foo car il doit insérer la clé primaire Foo dans la base de données.

Configurer le terminal principal

Il existe deux façons de configurer le côté maître d'une relation 1:1 dans Entity Framework :

Cartographie fluide :

<code class="language-csharp">modelBuilder.Entity<Foo>()
    .HasOptional(f => f.Boo)
    .WithRequired(s => s.Foo);</code>
Copier après la connexion

Annotation des données :

<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>
Copier après la connexion

En définissant le maître, vous spécifiez que Foo est propriétaire de la relation, et Boo ne peut exister que si l'enregistrement Foo correspondant existe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal