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 :

Suppression Impossible de l'objet car il est introuvable dans ObectStateManager


Sujet :

Entity Framework

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2010
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 222
    Par défaut Suppression Impossible de l'objet car il est introuvable dans ObectStateManager
    Bonsoir ,
    j'explique mon soucis , j'arrive pas a supprimer l'object que j'ai sélectionné . Merci Pour toute aide .
    Mon bouton de suppression
    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
    26
    private void supprimerToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Contact UnContact;
     
                DialogResult result;
                try
                {
                    UnContact = this.ContactCourant;
                    if (UnContact != null)
                    {
                        result = MessageBox.Show("Etes-vous sûrs de vouloir supprimer ce Contact ?", "Demande de confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (result == DialogResult.Yes) 
                        { 
                            UnContact.Supprimer(); 
     
                            bdsGesContact.RemoveCurrent();
                        }
                    }
     
     
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    la fonction de suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static void Supprimer(this EntityObject aObject)
            {
                WorkingEntitiesContact worki = new WorkingEntitiesContact();
               worki.DeleteObject(aObject);
                worki.SaveChanges();
           }
    Images attachées Images attachées  

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Hello,

    Soit tu utilises le WorkingEntitiesContact qui a crée l'objet pour l'opération de suppression. Par contre le SaveChange enregistera toutes les modifications en attente !

    Soit tu détaches cette objet de ce context (avant la fonction Supprimer), puis tu l'attaches sur ton nouveau context pour le supprimer. A noter que si l'objet n'est finalement plus supprimer, il faut alors à nouveau le transférer sur le context initial à la sortie de la fonction!

    La dernière possibilité est de passer l'identifiant sur de ton contact à la place puis d'executer une requête pour le récupérer, puis de le supprimer. (Je ne recommande pas cette solution car un objet fantome restera dans le context de base).

  3. #3
    Membre très actif
    Homme Profil pro
    etudiant
    Inscrit en
    Mai 2010
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 222
    Par défaut
    Bonsoir . pouvez vous être un peu plus clair SVP concernant l'attachement et le détachement car je l'ai fait mais rien ne change .

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 351
    Par défaut
    Salut,

    Si tu regardes ton erreur, il te dit bien qu'il ne le trouve pas dans ton contexte ! Au préalable, je ne sais pas si tu gères plusieurs contextes de données dans ton application, il faut bien y faire attention et ne pas supprimer des données dans un contexte sans rafraichir tes autres contextes qui seraient instanciés.

    Après cette parenthèse, si il te dit que tes données ne sont pas dans ton contexte, c'est soit qu'elles n'existent pas en base (ce qui n'a pas l'air d'être le cas pour toi, mais après ca dépend si tu as des problématiques d'accès concurrents), soit qu'elles ne sont pas chargées dans ton contexte.

    Dans cette deuxième hypothèse, il te suffit tout simplement d'aller attacher cette donnée à ton contexte (Avec la méthode Attach si je ne me trompe pas), puis qu'ensuite seulement tu appelles ton Delete suivi de ton SaveChanges

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/10/2008, 18h54
  2. [EasyPHP] ordinal 157 est introuvable dans ssleay32.dll
    Par jpclutier dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 02/07/2008, 14h35
  3. Réponses: 1
    Dernier message: 27/02/2008, 23h26
  4. Réponses: 10
    Dernier message: 04/04/2007, 16h02
  5. [C#] La ressource 'skin.bmp' est introuvable dans la classe?
    Par cortex024 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 21/01/2006, 00h24

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