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

C# Discussion :

Jointure entities model


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Jointure entities model
    Bonjour,
    j'utilise dans une application les entités model avec Framework 4.5 et c#.
    je vous donne mon souci:
    Si j'utilise une base de données SQL avec trois tables;
    - 1 Personnes
    ID_personne
    Nom_Personne

    - 2 Cours
    ID_Cours
    Nom_Cours

    - 3 PersonnesCours
    ID_Personne
    ID_Cours

    Quand j'exporte ces trois tables vers mon application en créant une EntityModel, il ne crée que les deux première tables mais avec une association (PersonnesCours).

    Je veux afficher dans une DataGridView la table PersonnesCours avec l'affichage de deux colonnes: Nom_Personne et Nom_Cours.
    En créant l'instance de l'entité BD, je peux afficher BD.Cours.ToList() ou BD.Personne.ToList() comme DataSouce du DataGridView.
    Je peux aussi afficher les cours d'une personne en navigant (pour une personne p c'est p.PersonneCours.ToList())
    Mais le problème c'est ça n'affiche que l'ID_Cours et non le Nom_Cours

    Si vous pouvez m'aider comment utiliser Linq peut-être.

    TESTEntities BD;
    public Form1()
    {
    InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    BD = new TESTEntities();
    var list = ......;
    dataGridView1.DataSource = list;

    }

  2. #2
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2014
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2014
    Messages : 153
    Points : 227
    Points
    227
    Par défaut
    Il faut que tu remontes la liste de cours d'une personne.
    L'entity d'association 1 n / 1 n n'aura pas de classe model correspondante, par contre personne et cours en ont.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant .NET
    Inscrit en
    Novembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant .NET

    Informations forums :
    Inscription : Novembre 2011
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    vous disposez de plusieurs moyens pour réaliser cela. Vous pouvez par exemple créer une vue qui remonte les colonnes que vous voulez. Si vous voulez le faire avec Linq alors ce sera quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     var list = (from p in BD.Personnes
    			join pc in BD.PersonnesCours on p.ID_personne equals pc.ID_Personne
    			join c in BD.Cours on c.ID_Cours equals pc.ID_Cours
    			select new { p.Nom_Personne, c.Nom_Cours }).ToList();

Discussions similaires

  1. MMapping table jointure Entity Framework 2008
    Par nervan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/06/2011, 13h44
  2. Creation d'un Entity Model depuis un Model UML
    Par dogua dans le forum Entity Framework
    Réponses: 12
    Dernier message: 05/04/2011, 10h05
  3. Entity Model dans une dll
    Par arasium dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 18/07/2008, 16h47
  4. Hibernate tools - activer vue Hibernate entity model
    Par hugo123 dans le forum Hibernate
    Réponses: 2
    Dernier message: 12/12/2006, 13h31

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