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 ?

DDD
Libérer: 2025-01-21 22:41:11
original
958 Les gens l'ont consulté

How Do I Define the Principal End in Entity Framework 1:1 Relationships?

Relations Entity Framework 1:1 : définition de la fin principale

Dans les relations un-à-un d'Entity Framework, l'identification correcte des entités principales et dépendantes est vitale pour l'intégrité de la base de données. L'entité principale existe indépendamment et est insérée en premier ; l'entité dépendante s'appuie sur le principal et y fait référence. L'incapacité de définir la fin principale entraîne des erreurs comme celle illustrée dans l'exemple, où Entity Framework ne peut pas déterminer l'ordre d'insertion.

Identification de l'entité principale

L'entité principale est celle qui peut exister sans l'entité dépendante. Il détient généralement la clé primaire, agissant en tant que « parent » dans la relation. Dans un scénario où l'entité « Boo » fait référence à « Foo » via une clé étrangère, « Boo » est généralement l'entité dépendante et « Foo » est le principal.

Spécifier la fin principale

Pour résoudre l'erreur « Fin principale non définie », utilisez soit l'API Fluent, soit des annotations de données dans votre modèle Entity Framework :

API fluide :

Cette approche utilise du code pour définir la relation :

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

Cet extrait de code désigne Foo comme l'entité principale. HasOptional indique qu'une Foo entité peut ou non avoir une entité Boo associée, tandis que WithRequired précise qu'une Boo entité doit avoir une entité Foo associée.

Annotations de données :

Cette méthode utilise des attributs au sein de vos classes d'entité :

<code class="language-csharp">public class Boo
{
    [Key, ForeignKey("Foo")]
    public string BooId { get; set; }
    public Foo Foo { get; set; }
}</code>
Copier après la connexion

Ici, l'attribut ForeignKey sur BooId lie explicitement Boo à Foo, faisant implicitement de Foo l'entité principale.

En définissant clairement la fin principale, Entity Framework gère correctement l'ordre d'insertion et maintient la cohérence des données dans vos relations one-to-one.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal