Entity Framework, Linq, Jointure interne, Group By, Order By

J'ai une Requête SQL

select Firma.Name as companyName, 
       Taetigkeit.Taetigkeit as skillName, 
       SUM(Zeit) as time
from Zeiterfassung 
inner join Firma On ZEiterfassung.FirmenID = Firma.ID    
inner join Taetigkeit on Zeiterfassung.TaetigkeitID = Taetigkeit.ID    
group by Taetigkeit, Firma.Name    
order by Firma.Name 

Et que vous voulez "traduire" à linq. Voici ce que j'ai essayé:

var query = db.Zeiterfassung
              .Where(x => x.Firma.ID == x.FirmenID && x.TaetigkeitID == x.Taetigkeit.ID)
              .GroupBy(x => x.Taetigkeit.Taetigkeit1)
              .Select(x => new Evaluation() { skillName = x.Key, time = x.Sum(y => y.Zeit), //skillName = x.Sum(x => x.Zeit), })
              .OrderBy(x => x.skillName);

Je ne sais pas qui à résoudre ce avec des jointures et le groupe car tout le temps quand je fais un groupBy je ne peux pas accéder aux autres membres.

  • Post ce que vous avez essayé jusqu'à présent.
  • var query = db.Zeiterfassung.Où(x => x.Firma.ID == x.FirmenID && x.TaetigkeitID == x.Taetigkeit.ID).GroupBy(x => x.Taetigkeit.Taetigkeit1).Sélectionnez(x => nouvelle Évaluation() { skillName = x.Clé, le temps = x.Sum(y => y.Zeit), //skillName = x.Sum(x => x.Zeit), }).OrderBy(x => x.skillName);
InformationsquelleAutor Markus_DE_HH | 2013-03-11