J'essaie d'exécuter le code SQL suivant à l'aide de LINQ et le plus proche que j'ai obtenu consistait à effectuer des jointures croisées et des calculs de somme. Je sais qu'il doit y avoir une meilleure façon de l'écrire, alors je me tourne vers l'équipe de la pile pour obtenir de l'aide.LINQ: Utilisation de INNER JOIN, Group et SUM
SELECT T1.Column1, T1.Column2, SUM(T3.Column1) AS Amount
FROM T1
INNER JOIN T2
ON T1.T1ID = T2.T1ID
INNER JOIN T3
ON T2.T3ID = T3.T3ID
GROUP BY T1.Column1, T1.Column2
Ce que j'ai essayé est le code LINQ suivant
var qTotal = from T2 in context.T2
from T3 in context.T3
where T3.T3ID == T3.T3ID
group T3 by T2.T1ID into gT2T3
from T1 in context.T1
where gT2T3.Key.Equals(T1.T1ID)
select new { T1.Column1,T1.Column2,Amount = gT2T3.Sum(t => t.Column1)};
Je sais qu'il doit y avoir une meilleure façon de l'écrire, je ne sais pas comment, toute aide serait génial!
Merci Nick, j'INITIAL pensais que la réponse était erronée, mais après la relecture et l'exécuter à nouveau je réalisé que j'avais une erreur dans ma première tentative et votre réponse était sur place. Je vous remercie! – Nic
Pour les nouvelles versions .NET (4.0 et suivantes?), Jetez un coup d'œil à la réponse twnaing ci-dessous. –