Précédent   Forum des professionnels en informatique > Dotnet > Accès aux données > Linq
Linq Forum d'entraide sur la manipulation de données avec Linq
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/11/2011, 10h59   #1
Membre éclairé
 
Homme
Développeur Sharepoint/Biztalk
Inscription : octobre 2008
Messages : 501
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur Sharepoint/Biztalk

Informations forums :
Inscription : octobre 2008
Messages : 501
Points : 399
Points : 399
Par défaut Plusieurs 'on' sur un 'join'

Bonjour,

Je dois créer une requête Linq qui jointe plusieurs champs d'une table à l'autre.

Voici la requête qui fonctionne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var requete = (from A in table1.AsEnumerable()
                                   join B in table2.AsEnumerable()
                                      on A["TPLNR"] equals B["TPLNR"]
                                   select new
                                   {
                                       Nom_classe = A.Field<string>("CLASSNUM"),
                                       Evenement = A.Field<string>("EVENT"),
                                       Date_effet = A.Field<string>("DATUM_CRE"),
                                       Code_point_mesurage = A.Field<string>("MSGRP"),
                                       Nom_point_mesurage = "",
                                       Code_Secteur = A.Field<string>("BEBER"),
                                       Nom_secteur = A.Field<string>("BEBER_DESC"),
                                       Code_region = A.Field<string>("REGION"),
                                       Nom_region = A.Field<string>("REGION_DESC"),
 
                                       Charact = B.Field<string>("CHARACT"),
                                       Value_from_num = B.Field<string>("VALUE_FROM"),
                                       Value_from_curr = "", // Ces paramètres permettent de créer un schéma XML homogène en sortie de cette classe
                                       Value_char = ""
                                   }).Distinct();
Ce code fonctionne, cependant j'ai besoin de jointer sur plusieurs champs. Si je met plusieurs 'on' ca ne fonctionne pas (erreur de compilation). et je ne trouve pas d'exemple concret sur le net pour voir la ristourne à exécuter.

Si quelqu'un à une idée.

Merci
bob633 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 11h08   #2
Membre Expert
 
Homme Benoît
Inscription : février 2003
Messages : 1 204
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 31
Localisation : Belgique

Informations forums :
Inscription : février 2003
Messages : 1 204
Points : 1 786
Points : 1 786
http://msdn.microsoft.com/en-us/library/bb907099.aspx

http://msdn.microsoft.com/en-us/library/bb397941.aspx
__________________
Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes
BenoitM est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 16h31   #3
Membre éclairé
 
Homme
Développeur Sharepoint/Biztalk
Inscription : octobre 2008
Messages : 501
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur Sharepoint/Biztalk

Informations forums :
Inscription : octobre 2008
Messages : 501
Points : 399
Points : 399
Merci !

J'avais déjà lu le premier lien, mais ca fonctionner pas pour mon cas (accès à un dataset, et pas de table déclarée à la volée dans le code.

Mais sur le 2eme, ils précisent l'exception, d'utiliser une variable pour les types anonymes (mon cas).

Encore merci
bob633 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h03.


 
 
 
 
Partenaires

Hébergement Web