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

Dotnet Discussion :

Mapping des classes Entity Framework


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Par défaut Mapping des classes Entity Framework
    Bonjour à tous ,

    J'ai cherché sur internet comment mapper (OneToMany ,ManyToOne,...) les classes avec EntityFramework mais j'ai du mal à comprendre comment on sa fonctionne et comment faut s'y prendre sous hibernate en Java c'est trés simple mais là je dois avouer que je rencontre des difficultés sans doute car c'est la premiére fois que j'utilise ce framework .

    Si quelqu'un pourrait m'expliquer et éventuellement une doc intéressante , je suis preneur .

    Merci d'avance

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,

    Avec entity il y a 2 modes de fonctionnement principaux: le model first et le database first.

    En Model first tu decris tes classes directement et entity ira generer le sql qui va bien pour creer les tables relations etc. Donc formule les mains de le calecon.


    Dans le second mode plus traditionnel, tu pars d'une base de donnees existantes, et entity va faire le reverse engeneering pour ecrire pour toi les classes representant tes tables/vues/contraines. En voici un exemple: https://msdn.microsoft.com/fr-ca/dat...or=-2147217396

    Oublie hibernate et les fichier xml, entity framework n'as pas grand chose a voir en termes d'implementation.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Par défaut
    ok merci mermich pour les infos , j'ai pu qu'a aller essayer çà .

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Par défaut
    J'ai une question , par exemple , j'ai une classe Habitant et Region , et que j'ai un Objet Region dans ma classe Habitant , si je fais une requete pour récuperer la liste d'habitant y va se débrouiller pour monter l'objet ou y'a un mapping ManyToOne équivalent à hibernate qui existe (meme si je sais que tu m'as d'oublié hibernate) ? car dans le lien tu m'a donné j'ai déjà réussi à faire des requetes comme dans l'exemple mais c'est pour récupérer l'objet Région que je sais pas trop

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Par défaut
    J'ai fais des test et ça ne fonctionne pas . le programme plante quand je demande de m'afficher lesUtilisateurs et uneRegion à mon avis mon mapping est pas bon car je me suis mal pris .

    J'ai essayé en suivant quelques exemple sur internet , j'ai crée une classe Region et Utilisateur codées comme ceci (aprés c'est peut-etre totalement faux mais j'aurai essayé^^) :

    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
    27
    28
    29
    30
    31
    32
    33
    34
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace Entity.Model
    {
        public class Utilisateur
        {
            public Utilisateur() {
     
            }
     
            //PrimaryKey
            public string idVisiteur { get; set; }
            public string nom { get; set; }
            public string prenom { get; set; }
            public string login { get; set; }
            public string mdp { get; set; }
            public string adresse { get; set; }
            public string cp { get; set; }
            public string ville { get; set; }
            public DateTime dateEmbauche { get; set; }
            public string telFixe { get; set; }
            public string telPort { get; set; }
            public string mail { get; set; }
     
     
            //Navigation properties
            public virtual Region uneRegion { get; set; }
        }
    }
    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    namespace Entity.Model
    {
        public class Region
        {
            public Region() {
               this.utilisateurs = new List<Utilisateur>();
            }
     
            public string idRegion;
            public string libelleRegion;
     
            //navigation properties
            public virtual ICollection<Utilisateur> utilisateurs{get;set;}
        }
    }

    et voici mon programmme principale pour tester

    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
    27
    namespace Entity
    {
        public class Program
        {
            static void Main(string[] args)
            {
                var dbContext = new gsbEntities();
     
                IQueryable<region> regions = from r  in dbContext.region
                                             select r;
     
                IQueryable<utilisateurs> lesUilisateurs = from u in dbContext.utilisateurs
                                             select u;
     
                foreach(var u in lesUilisateurs) {
                    Console.WriteLine(u.idUtilisateur);
                    Console.WriteLine(u.region.libelleRegion);
                }
     
                foreach (var r in regions) {
                    Console.WriteLine(r.idRegion);
                    Console.WriteLine(r.utilisateurs.ElementAt(0).idUtilisateur);
                }
     
            }
        }
    }

    Si quelqu'un m'aider en place correctement le mapping par rapport à la navigabilité se serait sympa car j'aimerais bien faire fonctionné

    Bonne soirée

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,


    tu as creer un emdx en utilisant l'approche database first ou code first ?

    Si c'est database first dans ce cas tu ne devrai pas avoir a crees les classes toit memem mais a importer depuis la database (cf le lien que j'ai filer).
    Si c'est en code first dans ce cas, il faut faire une datamigration en suivant l'exemple avec ce lien : https://msdn.microsoft.com/fr-ca/dat...or=-2147217396

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/03/2013, 12h26
  2. Réponses: 3
    Dernier message: 08/04/2012, 23h02
  3. Réponses: 7
    Dernier message: 26/03/2012, 17h24
  4. Réponses: 2
    Dernier message: 18/02/2012, 20h46
  5. [JAXB] Comment utiliser JAXB pour le mapping des classes définies dans mon XSD ?
    Par yassirjanati dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 13/10/2011, 13h54

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