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

Linq Discussion :

Comment ajouter une relation


Sujet :

Linq

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Par défaut Comment ajouter une relation
    salut tout le monde,

    Je vous explique mon problème.

    J'utilise Linq avec Ado .net Entity Data Model.
    J'utilise actuellement deux modèles dans mon projet et je voudrais pouvoir rajouter une relation entre une table qui est présente dans le modele A et l'autre dans le modele B.

    Comment puis-je faire ?

  2. #2
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Par défaut
    Je rajoute un peu plus d'information voici ce que je faisais avec mes datasets

    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
                var sourceDataSet = new DataSet();
     
     
                var myDataAdapterResources = new Devart.Data.MySql.MySqlDataAdapter(            
                "SELECT id_hum,alias FROM machine.numero_hum where actif=TRUE order by alias"
                , (Devart.Data.MySql.MySqlConnection)(Devart.Common.GlobalComponentsCache.GetObjectByName("FormPrincipale.mySqlConnection")));
     
                myDataAdapterResources.Fill(sourceDataSet, "Resources");
     
     
                var myDataAdapterScheduler = new Devart.Data.MySql.MySqlDataAdapter(
                "SELECT ap.*,min(ap.datedeb) as date_deb,max(ap.Datefin) as date_fin,lp.id_lot from machine.numero_hum as nh,shoporder.avancement_part as ap,shoporder.lot_part as lp "+
                "where nh.Actif=TRUE and ap.id_hum=nh.id_hum and lp.id_part_lot=ap.id_part_lot group by lp.id_lot,ap.sequence"
                , (Devart.Data.MySql.MySqlConnection)(Devart.Common.GlobalComponentsCache.GetObjectByName("FormPrincipale.mySqlConnection")));
     
                myDataAdapterScheduler.Fill(sourceDataSet, "Scheduler");
     
                var relationResourcesScheduler = new System.Data.DataRelation("RelationResourcesScheduler",
                sourceDataSet.Tables["Resources"].Columns["id_hum"],
                sourceDataSet.Tables["Scheduler"].Columns["id_hum"]);
     
                sourceDataSet.Relations.Add(relationResourcesScheduler);
    Et aprés je connecte mon dataSet comme ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
               schedulerStorage1.Resources.DataSource = sourceDataSet.Tables["Resources"];
                schedulerStorage1.Appointments.DataSource = sourceDataSet.Tables["Scheduler"];
    Je viens de faire ceci pour faire une jointure entre mes deux contexts

    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
            public IEnumerable<Equipment> getEquipments()
            {
                var objEquipment = new EquipmentEntities();
                return (from c in objEquipment.Equipment orderby c.alias ascending select c).AsQueryable();
            }
     
     
            public IEnumerable<avancement_part> getEtapes()
            {
                var objShopOrder = new ShopOrderEntities();
     
                return (from etape in objShopOrder.avancement_part
                       select etape).AsQueryable();
            }
     
            public IEnumerable<avancement_part> getEtapes(IEnumerable<Equipment> Equipments)
            {
     
                return from etape in getEtapes()
                            join equipment in Equipments
                            on etape.id_hum equals equipment.id_hum
                            select etape;
     
            }
    Et aprés je connecte mes requetes comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                var objEquipmentManager = new EquipmentManager();
                var objShoporderManager = new ShoporderManager();
     
     
                    var Equipments = objEquipmentManager.getEquipments();
                    schedulerStorage1.Resources.DataSource = Equipments;
     
                    schedulerStorage1.Appointments.DataSource = objShoporderManager.getEtapes(Equipments);
    Et là les deux codes ne provoquent pas le même résultat.
    Le premier fonctionne tandis que le second ne remplir pas mon scheduler

Discussions similaires

  1. Comment ajouter une icone à une JInternalFrame
    Par wassimb dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 12/07/2006, 15h13
  2. Comment ajouter une photo à mon profil ?
    Par ghita269 dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 5
    Dernier message: 18/11/2005, 20h36
  3. Réponses: 3
    Dernier message: 07/10/2005, 12h07
  4. [ADO.Net][VB.NET] Comment ajouter une colonne Integer à un DataTable ?
    Par graphicsxp dans le forum Accès aux données
    Réponses: 2
    Dernier message: 20/04/2005, 12h08

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