Tôi đang cố gắng thực hiện SQL sau bằng LINQ và gần nhất tôi nhận được là thực hiện các phép nối chéo và tính tổng. Tôi biết có một cách tốt hơn để viết nó vì vậy tôi đang chuyển sang nhóm ngăn xếp để được trợ giúp.LINQ: Sử dụng INNER JOIN, Nhóm và 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
Những gì tôi đã cố gắng như sau LINQ đang
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)};
Tôi biết đó có phải là một cách tốt hơn để viết nó, tôi chỉ không biết làm thế nào, bất kỳ trợ giúp sẽ là tuyệt vời!
Cảm ơn bạn Nick, tôi ban đầu nghĩ rằng câu trả lời là không chính xác nhưng sau khi đọc lại nó và thực hiện nó một lần nữa tôi nhận ra tôi đã có một sai lầm trong nỗ lực ban đầu của tôi và câu trả lời của bạn đã được phát hiện. cảm ơn bạn! – Nic
Đối với phiên bản .NET mới hơn (4.0 trở đi?), Hãy xem câu trả lời của twnaing dưới đây. –