Maison >développement back-end >C++ >Comment définir la fin principale dans les relations 1:1 d'Entity Framework ?
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>
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>
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!