Bonjour à tous,
J'espère que quelqu'un pourra m'aider à résoudre ce problème : j'essaye depuis plusieurs jours à traduire cette requête SQL en linq to entities.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT CLI.Id, AVG(SFC.Note) FROM Client AS CLI INNER JOIN SessionFormationClient AS SFC ON CLI.Id = SFC.IdClient INNER JOIN SessionFormation AS SFO ON SFO.Id = SFC.IdSessionFormation INNER JOIN TypeFormation AS TFO ON TFO.Id = SFO.IdTypeFormation INNER JOIN Examen AS EXA ON EXA.Id = TFO.IdExamen WHERE EXA.Id = 8 GROUP BY CLI.Id ORDER BY AVG(SFC.Note) DESC
J'ai bien lu des exemples sur la fonction AVG en linq, mais je n'en ai vu aucun qui faisait intervenir des jointures.
Voici le résultat que je veux obtenir :
J'ai commencé à faire ce genre de chose mais sans succès, je ne sais pas si je pars vers la bonne piste :IdClient - Moyenne
1 10
2 12
... etc
Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var query = from client in this.ObjectContext.Clients join sfc in this.ObjectContext.SessionFormationClients on client.Id equals sfc.IdClient join sf in this.ObjectContext.SessionFormations on sfc.IdSessionFormation equals sf.Id join tf in this.ObjectContext.TypeFormations on sf.IdTypeFormation equals tf.Id join examen in this.ObjectContext.Examens on tf.IdExamen equals examen.Id where examen.Id == 8 group client by sfc.Id into c select new { IdClient = c.Key, c.Average(...malheureusement ici rien ne marche ...) };
Partager