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 :

Entity-Framework tables accentuées


Sujet :

Entity Framework

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut Entity-Framework tables accentuées
    Bonjour à tous,

    J'ai créé une base de données sql server 2008 (conversion d'une bd sql server 2005).

    Dans cette BD j'ai des tables ayant des noms accentués comme Copropriété ou Copropriétaire.

    Tant que j'accédais ces tables par procs stocks ou requêtes dans une interface .Net cela fonctionnait correctement.

    Dernièrement j'ai fait une interface .Net Mvc4 Razor Entity-Framework (et donc sql server 2008).

    Les vues de création générées automatiquement par Visual Studio 2012 (web express) plantent, plus particulièrement les méthodes Create de controller ayant les objets de type Copropriété ou Copropriétaire en paramètre d'entrée. Le debugger ne rentre même pas dans ces méthodes.
    A l'écran apparaît le plantage suivant :
    Un élément avec la même clé a déjà été ajouté.

    Auriez-vous une idée pour remédier à ce problème ?

    Merci d'avance pour vos éclaircissements.

    Cordialement.

  2. #2
    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 : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    D'après le message d'erreur, cela n'a rien à voir avec le nom des tables. Ceci dit c'est une très mauvaise pratique de mettre des accents et caractères spéciaux dans les noms d'objets.

    Au vu du message d'erreur, je dirais qu'il faut vérifier lorsque tu insères des données, que la clef primaire de tes objets soient bien uniques.
    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.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut
    Effectivement cela semble être la réponse au pb.
    Cependant ça ne l'est pas.

    Je rappelle que tous le code est généré automatiquement par mvc4 en fonction de l'entity-framework en fonction des tables de la base de données.

    Lors de la saisie des données je fais attention de ne rentrer que des données correctes (donc pas de duplicate keys).

    J'indique également que pour les tables sql server 2008 dont les noms sont non-accentués le code généré fonctionne correctement et les insertions s'effectuent correctement.

    Le code généré pour la création (insertion) pour Copropriété est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            [HttpPost]
            [ValidateAntiForgeryToken]
            public ActionResult Create(Copropriété copropriété)
            {
                if (ModelState.IsValid)
                {
                    db.Copropriété.Add(copropriété);
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
     
                return View(copropriété);
            }
    Comme le debugger n'entre même pas dans cette méthode c'est difficile (pour moi) de faire un diagnostic.

    Auriez-vous une idée ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 155
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    Apparemment le problème ne proviendrait pas du nom des tables accentué.

    J'ai créé une solution dans laquelle :
    - j'ai un projet qui contient (uniquement) le model entity-framework
    - un projet mvc4 qui référence le précédent model.
    - un 2nd projet mvc4 qui référence le 1er model.

    Le fait que le model ne soit pas directement dans les projets mvc4 pose apparemment problème et fait planter les sites mvc4, en le remettant dans les projets mv4 ça fonctionne.

    Pouvez-vous confirmer cela ? Serait-il possible malgré tout de mettre le model entity-framework séparément dans un projet ?

Discussions similaires

  1. Entity Framework + Table dynamique
    Par dudule dans le forum Entity Framework
    Réponses: 0
    Dernier message: 09/09/2013, 16h53
  2. [VB.NET] Entity Framework avec table lié
    Par tito55 dans le forum Entity Framework
    Réponses: 4
    Dernier message: 05/05/2011, 15h52
  3. Réponses: 1
    Dernier message: 25/02/2010, 22h41
  4. [Entity Framework]Modification Stucture Table
    Par Idredeguerre dans le forum Framework .NET
    Réponses: 0
    Dernier message: 28/05/2009, 11h56
  5. [ADO.NET Entity Framework] génération des tables
    Par anthyme dans le forum Accès aux données
    Réponses: 3
    Dernier message: 22/02/2008, 17h44

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