Tôi đã có bảng này: Số liệu thống kê (id int, col1 int, col2 int, col3 int ...) Tôi muốn lấy tổng các giá trị col1, giá trị col2, col3 giá trị, vv Một truy vấn đơn giản sql:Tổng của nhiều cột trong truy vấn LINQ
SELECT SUM([Col1]), SUM([Col2])
FROM [dbo].[Statistics]
nhưng trong LINQ:
var val1 = db.Statistics.Sum(x => x.Col1);
var val2 = db.Statistics.Sum(x => x.Col2);
var val3 = db.Statistics.Sum(x => x.Col3);
...
Bằng cách này làm việc, nhưng điều này thực hiện N truy vấn trên cơ sở dữ liệu. Tôi muốn thực hiện chỉ một. Cách duy nhất tôi tìm thấy là:
var result = db.Statistics.GroupBy(x => 1).Select(x => new
{
val1 = x.Sum(k => k.Col1),
val2 = x.Sum(k => k.Col2),
val3 = x.Sum(k => k.Col3),
});
rằng nó tạo truy vấn phức tạp. là bình thường?
CẬP NHẬT đó là những kế hoạch thực hiện 2:
Chúng tôi không thể cho bạn biết nếu nó hoạt động đủ tốt cho bạn. Bạn nói họ. ** Đo nó **. Nếu nó hoạt động đủ tốt cho bạn, thì nó hoạt động đủ tốt cho bạn. Nếu nó không, bạn biết nó không. – Servy
Có thể [sao chép] (http://stackoverflow.com/questions/2432281/get-sum-of-two-columns-in-one-linq-query) –