Maison > développement back-end > C++ > Comment implémenter la suppression en cascade pour les relations un à zéro ou un dans Entity Framework ?

Comment implémenter la suppression en cascade pour les relations un à zéro ou un dans Entity Framework ?

Barbara Streisand
Libérer: 2025-01-11 13:57:42
original
928 Les gens l'ont consulté

How to Implement Cascade Delete for One-to-Zero-or-One Relationships in Entity Framework?

Suppression en cascade d'une relation un à zéro ou une dans Entity Framework

Dans un scénario que j'ai rencontré récemment, une relation un à zéro ou un a été établie entre deux classes POCO User et UserDetail. Cependant, lorsque vous essayez de supprimer l'enregistrement utilisateur, les contraintes de clé étrangère dans UserDetail empêchent la suppression de l'enregistrement utilisateur en raison du manque de suppressions en cascade.

Pour résoudre ce problème, l'API Fluent doit être utilisée dans DbContext. L'extrait de code suivant doit être ajouté :

<code class="language-csharp">protected override void OnModelCreating(DbModelBuilder modelBuilder)
{   
    modelBuilder.Entity<User>()
        .HasOptional(a => a.UserDetail)
        .WithOptionalDependent()
        .WillCascadeOnDelete(true);
}</code>
Copier après la connexion

Une relation un à zéro ou un entre User et UserDetail est établie à l'aide des méthodes HasOptional() et WithOptionalDependent(). La méthode WillCascadeOnDelete(true) permet ensuite des suppressions en cascade pour cette relation.

Une fois ces modifications mises en œuvre, la suppression d'un enregistrement utilisateur déclenchera désormais automatiquement la suppression de l'enregistrement UserDetail associé.

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