Estoy tratando de realizar el siguiente SQL usando LINQ y lo más parecido que conseguí fue haciendo combinaciones cruzadas y cálculos de suma. Sé que tiene que haber una mejor manera de escribirlo, así que recurro al equipo de pila para pedir ayuda.LINQ: Usando INNER JOIN, Group y 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
Lo que he intentado es el siguiente código de LINQ
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)};
Sé que tiene que haber una mejor manera de escribirlo, simplemente no saben cómo, cualquier ayuda sería grande!
Gracias Nick, iniciales pensé que la respuesta era incorrecta pero después de releerlo y realizar de nuevo me di cuenta que tenía un error en mi primer intento y tu respuesta fue perfecta. ¡gracias! – Nic
Para las versiones .NET más nuevas (4.0 en adelante?), Eche un vistazo a la respuesta de twnaing a continuación. –