Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1020 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Linq2entities, jointures multiples

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Linq2entities, jointures multiples

n°2077334
deliriumtr​emens
sic transit intestinal...
Posté le 20-05-2011 à 12:01:03  profilanswer
 

Hello,
 
Situation un poil simplifiée.
J'ai 3 tables :
AnimalCategory
AnimalType
Animal
 
AnimalCategory a 1-n AnimalType
AnimalType a 0-n Animal
 
Ma requête doit me retourner
AnimalCategory ->AnimalTypes -> Animal (s'ils existent, avec une condition sur une autre table).
 
Donc, en sql, un left join sur la dernière table
 
La requête suivante semble fonctionner

Code :
  1. from ac in repository_.All<AnimalCategory>()
  2.                                   where ac.AlphaCode == alphaCode
  3.                                   select new
  4.                                   {
  5.                                       ac,
  6.                                       AnimalTypes = from at in ac.AnimalTypes
  7.                                                     select new
  8.                                                     {
  9.                                                         Animals = from a in at.Animals
  10.                                                                   where a.ProductionUnit.Id == puid
  11.                                                                   select a
  12.                                                     }
  13.                                   }).FirstOrDefault().ac;


 
Mais je me demande si on ne peut pas faire mieux, plus compact...
 
Des rois de linq ?

mood
Publicité
Posté le 20-05-2011 à 12:01:03  profilanswer
 

n°2079074
alien cons​piracy
hardtrance addict
Posté le 30-05-2011 à 11:54:30  profilanswer
 

J'ai pas le temps de tester mais je serais parti sur une solution comme celle-ci

 

from ac in repository.AnimalCategory
join at in repository.AnimalType  ac equals at.AnimalCategory
join a in repository.Animal on at equals a.AnimalType into Animals
from animal in Animals.DefautIfEmpty()
select ....

 


Message édité par alien conspiracy le 30-05-2011 à 11:55:07

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Linq2entities, jointures multiples

 

Sujets relatifs
[JS] multiples changement de classes sur un seul onmouseover[RegEx] Supprimer les espaces multiples
Création de fichier multiples[RESOLU] [MySQL] Jointures sur 3 tables
Fonction Javascript pour slideup / slidedown multiplesTrier un array et catégoriser les infos (ou requêtes multiples ?)
[REXX] Ecritures multiples à partir d'une pile ?Help pour liste déroulante a choix multiples
Combinatoire avec multiples caractères répétitifs[MCD] multiples catégories de produits
Plus de sujets relatifs à : Linq2entities, jointures multiples


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR