IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entity Framework Discussion :

Comment supprimer des données dans deux Entités (Tables) qui sont liées


Sujet :

Entity Framework

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 164
    Par défaut Comment supprimer des données dans deux Entités (Tables) qui sont liées
    Bonjour à tous

    J'ai une table "User" et une table "Proximity" (Une capture d’écran de mon model EDMX pour mieux voir les colonnes de chaque table ainsi leurs relations)

    Question

    Pourquoi cette méthode supprime juste les utilisateurs associé à la table "Proximity" et PAS aussi dans la table "User" sachant que y a un lien entre les deux tables que je fais dans le code avec Include ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     public static void DeleteUser_Proximity(int prxIdx)
            {
                try
                {
                    using (EDM edm = new EDM())
                    {
                        Proximity proximity = edm.Proximity.Include("User").Where(p => p.PrxIdx == prxIdx).FirstOrDefault();
                        if (proximity != null)
                        {
                            while (proximity.User.Count > 0)
                            {
                                User user = proximity.User.First();
                                proximity.User.Remove(user);
                            }
                        }
                        edm.SaveChanges();
                    }
                }
                catch (Exception ex)
                {
                    Logging.Log(ex);
                    throw;
                }
            }
    Ce que je veux moi c'est que quand je supprime un User dans la table Proximity il sera supprimé aussi dans la Table "User"

    Ps: ma source de donnée est SQL SERVER 2008

    Merci à tous
    Images attachées Images attachées  

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 373
    Par défaut
    Citation Envoyé par jérémyp8 Voir le message
    Bonjour à tous

    J'ai une table "User" et une table "Proximity" (Une capture d’écran de mon model EDMX pour mieux voir les colonnes de chaque table ainsi leurs relations)

    Question

    Pourquoi cette méthode supprime juste les utilisateurs associé à la table "Proximity" et PAS aussi dans la table "User" sachant que y a un lien entre les deux tables que je fais dans le code avec Include ?

    Ce que je veux moi c'est que quand je supprime un User dans la table Proximity il sera supprimé aussi dans la Table "User"

    Ps: ma source de donnée est SQL SERVER 2008

    Merci à tous
    Bonjour,

    Il te faudra activer les "delete cascade" dans ta Base de Données, n'oublie de le faire pour les Update aussi."

    Cordialement.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 164
    Par défaut
    Bonjour Alexandre le Grand

    Grace à tes conseils, j'ai pu régler mon problème

    Merci énormément

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Attention avec les opérations en Cascade car même en-dehors d'Entity Framework ce comportement sera présent (ca peut créer de mauvaises surprises en production lorsqu'on a oublié ce détail, et Dieu sait qu'on a vite fait de l'oublier) : "tiens je vais supprimer des infos dans cette table ... ah ben mince une partie de mes campagnes a aussi disparu ..."

    Et puis bien sûr le dernier backup remonte à plusieurs jours voire semaines, quand il y en a un...

    My 2 cents
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 164
    Par défaut
    Merci énormément pour tes conseils DotNetMatt

  6. #6
    Membre éclairé Avatar de dfiad77pro
    Homme Profil pro
    Responsable Architecture logicielle
    Inscrit en
    Décembre 2008
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Architecture logicielle
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 545
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    Attention avec les opérations en Cascade car même en-dehors d'Entity Framework ce comportement sera présent (ca peut créer de mauvaises surprises en production lorsqu'on a oublié ce détail, et Dieu sait qu'on a vite fait de l'oublier) : "tiens je vais supprimer des infos dans cette table ... ah ben mince une partie de mes campagnes a aussi disparu ..."

    Et puis bien sûr le dernier backup remonte à plusieurs jours voire semaines, quand il y en a un...

    My 2 cents
    Oui, sans compter les problèmes de performance avec EF, si tu lance un delete sur 10 000 lignes

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 164
    Par défaut
    Donc si je comprends bien cette pratique "les opérations en Cascade" ont plus d’inconvenants que d'avantages !

Discussions similaires

  1. Comment supprimer des enregistrements dans deux tables ?
    Par Daniela dans le forum VBA Access
    Réponses: 15
    Dernier message: 18/06/2009, 17h51
  2. comment importer des données dans une table paradox
    Par pierrot67 dans le forum Bases de données
    Réponses: 6
    Dernier message: 02/08/2007, 18h32
  3. supprimer des données dans plusieurs tables
    Par mnssylvain dans le forum Access
    Réponses: 4
    Dernier message: 28/01/2007, 19h06
  4. [VB.Net] Comment insérer des données dans des tables ?
    Par shakoulé dans le forum Accès aux données
    Réponses: 2
    Dernier message: 23/09/2006, 21h46
  5. [DisplayTag] Comment affecter des données dans la table ?
    Par MAJIK_ENIS dans le forum Taglibs
    Réponses: 7
    Dernier message: 04/04/2006, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo