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

Framework .NET Discussion :

[Entity Framework] Problème avec le Designer


Sujet :

Framework .NET

  1. #1
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut [Entity Framework] Problème avec le Designer
    Bonjour,

    Tout d'abord, j'utilise VS2008 et 3.5 (SP1).

    Mon problème est le suivant.
    Lorsque je charge un modèle edmx, le designer m'affiche bien mes entités, liens etc...

    Si je supprime une entité du modèle, que je "re-sauve" mon modèle et qu'ensuite je clique sur "Mettre à jour le Modèle à partir de la base de données" je ne vois pas l'entité (table) que je viens de supprimer.
    Ce que j'ai constaté c'est qu'il reste des bribes dans le XML du modèle concernant l'entité que je supprime.

    Est ce un bug du designer ou est ce que je m'y prends mal ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Est-ce que tu as bien sélectionner la partie "refresh" et ensuite sélectionné toute tes tables que tu veux remettre à jour?

  3. #3
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    Dans la partie "Actualiser" je ne peux pas sélectionner les tables.
    J'ai juste un treeview avec l'ensemble des tables disponibles c'est tout.

    Dans la partie "Ajouter", effectivement j'aurai le moyen de sélectionner les tables, mais il n'y en a pas de visible.

    Ce dont je me suis rendu compte, c'est que si on charge toutes les tables de notre base d'un coup, il est logique que dans la partie "Ajouter" il n'y ait plus de tables disponibles à ajouter, je le conçois.

    Mais par contre lorsque qu'on supprime une entité via le designer, je ne comprends pas pourquoi ce même onglet "Ajouter" ne me propose pas d'ajouter à nouveau la table que je viens de supprimer !!!

  4. #4
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Bizarre ça... moi quand je fais "mettre à jour le modèle", j'ai bien un onglet pour sélectionner les tables que je veux mettre à jour, ainsi qu'un onglet pour ajouter les tables...

  5. #5
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    oui je suis d'accord avec toi, les onglets je les ai bien.

    Dans chaque onglets, on a un treeview.
    Mais dans l'onglet "Refresh", je devrai voir la table que je viens de supprimer non ?

  6. #6
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Points : 130
    Points
    130
    Par défaut
    Si elle est supprimée, logiquement non. Par contre, tu devrais la voir dans l'onglet "ajouter". Est-ce bien le cas?

  7. #7
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    Eh bien non, je ne la vois pas.
    J'ai juste les cases à cocher devant Tables, Vues et Procédures mais il n'y a rien dans le treeview.

  8. #8
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    C'est normal, c'est une limitation du designer de VS 2008 (résolu dans VS 2010). Quand tu supprimes une entité de la surface de design (edmx) la table correspondante dans le SSDL n'est pas supprimée. Quand tu lances le wizard de mise à jour celui compare ta base avec le SSDL. Comme la table est toujours présente dans le SSDL il ne te la propose pas dans le Wizard.

    La seule solution est de supprimer l'entrée dans le SSDL (cliquer sur voir les fichiers cachés dans VS pour le voir).
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  9. #9
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    D'accord, je comprends mieux, parce que j'étais en train de me tirer les cheveux !!!

    Par contre pourrais-tu être plus explicite quand tu me dis de "supprimer l'entrée dans le SSDL (cliquer sur voir les fichiers cachés dans VS pour le voir)".

    Est ce que ça veut dire que je dois visualiser le design en mode XML et rechercher l'entité que je viens de supprimer, pour la supprimer définitivement ?

    Ou bien est ce que je dois passer par l"Explorateur de modèle.

    N'y a-t-il pas des "tools" a installé pour palier ce problème ?

    Merci d'avance

  10. #10
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Citation Envoyé par farfadet Voir le message
    Est ce que ça veut dire que je dois visualiser le design en mode XML et rechercher l'entité que je viens de supprimer, pour la supprimer définitivement ?
    Pour faire simple.
    Dans Entity Framework tu as trois composants: EDM, SSDL et CSDL.
    Le SSDL contient la description de ta data source (ta base de données dans ton cas): tes tables avec leur colonnes, leurs types, etc.
    Le CSDL contient les types de tes entités (que tu vois sur la surface de design).
    Le EDM fait le mapping entre les deux.

    Tu dois ouvrir le fichier SSDL et l'éditer à la main (c'est du XML) pour supprimer la description de la table correspond à l'entité que tu avais supprimée. Ce fichier n'est pas visible diretement dans VS. Soit tu cliques sur le bouton "afficher tous les fichiers" dans l'explorateur de solution, soit tu ouvres le répertoire qui contient ton modèle pour le trouver.
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  11. #11
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Ma technique perso c'est de tout supprimer et de tout recréer

    La dernière fois que j'ai tripatouillé dans le xml pour supprimer la référence à une ancienne FK que je venais de supprimer ça m'a bien pris 20 minutes pour tout trouver et supprimer.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  12. #12
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Citation Envoyé par Skyounet Voir le message
    Ma technique perso c'est de tout supprimer et de tout recréer
    ça marche pas quand t'as 20 entités et que t'as personnalisé les 15 champs de chaque entité un par un (pour les renommer par exemple)
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  13. #13
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par The_badger_man Voir le message
    ça marche pas quand t'as 20 entités et que t'as personnalisé les 15 champs de chaque entité un par un (pour les renommer par exemple)
    Ben si en fait j'avais tout renommé (pluriel au singulier) et je me suis dit : OSEF je laisse tout par défaut je renommerai à la fin quand je suis sur que tout est bon.

    Mais j'avoue si tu as rajouté des mappings de procédures stockées ou autre, c'est pas pratique de tout supprimer.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  14. #14
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Points : 45
    Points
    45
    Par défaut
    ok merci pour vos remarques et conseils.

    je vais me dépatouiller avec tout ça.

    merci à tous.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 67
    Points
    67
    Par défaut Solution BIS
    Même problème que farfadet ...

    Après recherche (merci MS) on peut aussi faire click droit sur l' edmx puis ouvrir avec éditeur XML.

    Ensuite dans région SSDL Content,

    supprimer le noeud EntityType correspondant à l'entité non gérée par le designer ...

    Ps : ça en dit long sur la qualité d'EF (du moins dans la 3.5 sp1).

  16. #16
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Citation Envoyé par sauceaupistou Voir le message
    Même problème que farfadet ...

    Après recherche (merci MS) on peut aussi faire click droit sur l' edmx puis ouvrir avec éditeur XML.

    Ensuite dans région SSDL Content,

    supprimer le noeud EntityType correspondant à l'entité non gérée par le designer ...

    Ps : ça en dit long sur la qualité d'EF (du moins dans la 3.5 sp1).
    Comme je l'ai dit plus haut, il s'agit d'une limitation du designer dans VS2008 (et non d'EF).
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 121
    Points : 67
    Points
    67
    Par défaut
    ah ok

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

Discussions similaires

  1. [C#]Héritage d'un DataGridView, problème avec le designer
    Par Pilloutou dans le forum Windows Forms
    Réponses: 18
    Dernier message: 29/02/2012, 08h21
  2. Réponses: 2
    Dernier message: 06/04/2009, 15h40
  3. Réponses: 1
    Dernier message: 24/01/2007, 16h00
  4. [2005] Problème avec le designer
    Par vandamme dans le forum Visual Studio
    Réponses: 1
    Dernier message: 07/01/2007, 01h14
  5. problème avec sql designer
    Par artotal dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/08/2006, 16h57

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