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 :

"Mapping" entre les colonnes d'un table BD et proprieté [Débutant]


Sujet :

Entity Framework

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Points : 71
    Points
    71
    Par défaut "Mapping" entre les colonnes d'un table BD et proprieté
    Bonsoir;

    Je travaille sur une application de stage avec asp .net MVC + EF 6, au cours de développement je me suis obligé parfois de rénommer quelques champs de ma base de donnée (par exp: Table 'personne', changement : nom par Nom) , et pour efféctuer le mème changement sur le projet, je fais un mise-a-jour sur mon Model , et donc je serai obligé d'effectuer le meme changement( nom par Nom) manuellement sur tous les Controllers et Views .

    Je souhaite maintenant trouver une solution a ce problème (comme fichier XML de NHibernate) ?

    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Salut,

    Je comprends pas ta question... car le but d'un ORM en l’occurrence EF ici, c'est de mappé ton model à ta Bdd
    --> En gros mapper la propriété "Nom" de ton "Model" à la colonne "nom" de ta Bdd.

    Sinon tu es en DB First, Model First ou Code First ?

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    Merci pour votre réponse.

    Je suis en DB first.

    Le probleme est: Si je modifie un champs d'un table de ma base de donnée( par exp table User: je change "nomUser" par "nom",) je fais un m-a-j de mon Model pour que ce dernier prend en charge les dérnieres modifications, tout est normale maintenant.
    Le controller User reste travailler par nomUser, donc je me suis obligé de changer "nomUser" par "nom" dans toute la page et les Views associé a ce controller(dans tous le projet).

    Je chercher une solution pour économiser ce travaille, par exp d'associer le champs 'nomUser' a une alias 'nom', si je changerai le champs 'nomUser' par 'Machin', je reste toujours travailler avec 'nom', c-a-d sans toucher les Controllers.

    J'esp que j'ai bien expliqué le PB, ma langue est mauvaise.

    merci

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    J'espère t'avoir bien compris aussi :

    Quand tu es sur ton "Diagram" (fichier edmx) tu peux jouer avec le mapping. C'est à dire renommer une propriété et t'assurer qu'elle est bien mappée avec la bonne colonne en Bdd.

    Ici par exemple je vais renommer ma propriétée "Nom" en "NomAbc" dans mon Model :
    Nom : Entite1.jpg
Affichages : 766
Taille : 16,1 KoNom : Entite2.jpg
Affichages : 781
Taille : 16,5 Ko

    Pour vérifier que le mapping est correct tu as un onglet "Mapping Détails" qui te montre le mapping quand tu sélectionne une entité.
    Nom : Mapping.jpg
Affichages : 779
Taille : 46,8 Ko

    Dans ton cas il suffit de renommer ta propriété à chaque changement de ta BDD.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Août 2006
    Messages : 88
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Déjà je te rassure, ta langue est très bonne puisque nous comprennons tout ce que tu demandes :-)
    La solution proposée peut fonctionner.

    Après je déconseille de faire de cette façon car, sauf cas qui le justifie, il n'est pas très propre d'avoir des noms de propriétés d'objets différents des noms de champs de la base de données auquels ces champs sont liés.

    J'aurais tendance à te conseiller 1 chose c'est de normer ton code. Il faut te forcer au début à avoir une logique unique de nommage de tes codes (varibales, classes, instances, propriétés, etc...)

    Personnelement j'utilise cette manière qui fonctionne bien :

    1) Chaque nom de table dans la BDD est unique et parlant (au sens métier). Ex : Demande, Employe, Materiel, etc... et toujours au singulier

    2) Le nom de classe générée sera identique

    3) Chaque instanciation de cette classe suit le même schéma : tmp + Nom de classe (ici tu peux appliquer la norme que tu souhaites, mais par contre elle doit être TOUJOURS identique)

    4) Chaque référence à une propriétés

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 89
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par katkiller Voir le message
    Dans ton cas il suffit de renommer ta propriété à chaque changement de ta BDD.
    Merci bcp katlikket, votre solution fonctionne trés bien, j'avais pas penser a ça, j'allais chercher trés loin (fichier xml ...), mais comme ça on apprend .

    Citation Envoyé par zesamoth Voir le message
    Après je déconseille de faire de cette façon car, sauf cas qui le justifie, il n'est pas très propre d'avoir des noms de propriétés d'objets différents des noms de champs de la base de données auquels ces champs sont liés.
    Totalement d'accord avec vous sur cette point, mais parfois les encadrants de stage vous perturbe dans les dérnieres secondes par des modifications inutiles.

    merci infiniment pour vosconseils.

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

Discussions similaires

  1. Spool, problème d'espace entre les colonnes
    Par moumoutte32 dans le forum SQL
    Réponses: 15
    Dernier message: 13/10/2011, 12h21
  2. <table> et colonnes : Pas de separation entre les colonnes ?
    Par sachav dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/12/2007, 13h31
  3. Réponses: 2
    Dernier message: 01/08/2007, 15h19

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