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

ASP.NET Discussion :

problème :"objetcontext supprimé" dans affichage dans un gridview d'une requete linq [Débutant]


Sujet :

ASP.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut problème :"objetcontext supprimé" dans affichage dans un gridview d'une requete linq
    Bonjour,

    Je cherche a afficher le résultat d'une requete linq dans un gridview.

    A priori la requete fonctionne, le gridview est en place.

    Quand le code s'execute, au moment du gridview.databind, j'ai cette erreur :
    L'instance ObjectContext a été supprimée et ne peut plus être utilisée pour les opérations qui requièrent une connexion.

    Pourriez-vous m'en dire plus?

    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
     
            public static IEnumerable<Utilisateur> GetUtilisateurById2(int cleUtilisateur)
            {
                using (Ent_Etudiant PlanE = new Ent_Etudiant())
                {
                    IEnumerable<Utilisateur> res = from cre in PlanE.Utilisateur
                                                  where cre.CleUtilisateur == cleUtilisateur
                                                  select cre;
     
                    if (res.Count() == 0)
                        return null;
     
                    if (res != null)
                        return res;
                    else
                        return null;
                }
            }
    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
    protected void Page_Load(object sender, EventArgs e)
            
            {
                try
                {
                    int cleApprenant = (int)Session[SessionUtils.CLEUTILISATEUR];
                    IEnumerable<Utilisateur> app = UtilisateurDb.GetUtilisateurById2(cleApprenant);
                    GridView.DataSource = app;
                    GridView.DataBind();
    
                }
                catch (NullReferenceException nre)
                {
                    Console.WriteLine("erreur" + nre);
                }
            }

  2. #2
    Membre averti

    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 176
    Points : 310
    Points
    310
    Par défaut
    Salut,

    Ton problème semble être lié à Entity Framework, plus précisément à une ou plusieurs propriétés de navigation.

    Si ton objet Utilisateur embarque un autre objet (je sais pas, par exemple un objet Adresse) et que ta grille affiche cet objet, il est possible, selon ta configuration d'EF, que ce sous-objet ne soit pas chargé. Dans ce cas, il te faudra passer par Include.

    Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    utilisateurs = db.Users.Include(u => u.Adresse).ToList();
    Bon courage

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Le problème est plus simple que ca. Tu utilises un using qui fait un dispose de l'objet lorsque tu sors de son scope. (Ton databind se produisant après le context est perdu)
    A la place de retourner un ienumerable retourne une liste (List) et tu n'auras plus le problème...(juste faire .ToList())

    Ou bien enlève ton using ^^

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    J'ai renvoyé une liste et effectivement, je n'ai plus de problème, merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Supprimer de fichier .pdf dans un dossier zippé à partir d'une liste
    Par Gardel dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 09/11/2010, 12h35
  2. Réponses: 2
    Dernier message: 19/07/2007, 17h01
  3. Réponses: 2
    Dernier message: 21/06/2007, 13h40
  4. Réponses: 1
    Dernier message: 25/10/2005, 12h18

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