Lambda expressions Multiple join
Bonjour,
j'essaye de créer une requête linq en utilisant les expression lambda qui join trois table, j'ai vu comment on pouvait joindre 2 tables mais pour 3 j'ai pas trouvé.
J'ai réussi à écrire une requête linq fonctionnel mais j'aimerais bien pouvoir la réécrire en utilisant les expression lambda.
J'ai donc trois table:
- une carnet d'adresse contenant les différents utilisateur
- une contact contenant les différents contact et leur information
- une annuaire contenant les différentes société
dans contact j'ai une clé étrangère pointant sur carnet d'adresse et une autre sur annuaire.
Et je voudrais donc retrouvé toutes les société référencé pour un utilisateur donné:
Voici un résultat fonctionnel en sql et un autre en linq:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
select * from TRD_ANNUAIRE a
join TRD_CONTACT c on a.SOA_ID=c.CTA_SOA_ID
join TRD_CARNET_ADRESSE ca on c.CTA_ID=ca.CAD_CTA_ID
where ca.CAD_USR_CODE=1
List<SocieteAnnuaireCompatible> test = (from a in database.TRD_ANNUAIRE
join c in database.TRD_CONTACT on a.SOA_ID equals c.CTA_SOA_ID
join ca in database.TRD_CARNET_ADRESSE on c.CTA_ID equals ca.CAD_CTA_ID
where ca.CAD_USR_CODE == code_uti
select new SocieteAnnuaireCompatible
{
Nom = a.SOA_NOM,
Adresse = a.SOA_ADRESSE,
CodePostal = a.SOA_CODE_POSTAL,
Email = a.SOA_EMAIL,
Fax = a.SOA_FAX,
Id = a.SOA_ID,
Gsm = a.SOA_GSM,
Telephone = a.SOA_TELEPHONE,
Ville = a.SOA_VILLE
}).Distinct().ToList(); |
Si quelqu'un pourrait m'aider à créer cette requête merci.