2010-02-11 68 views
0

的sql我想翻译这个简单的SQL语句的LINQ到SQL:LINQ与多个聚合

SELECT SUM(field1), SUM(field2) 
FROM TableName 

最接近的LINQ到SQL是使用GROUP BY子句(我认为):

from tbl in TableName 
group tbl by (1) into g 
select new{ value1= g.Sum(p => p.field1), value2 = g.Sum(p => p.field2)}; 

由于这不会产生预期结果,必须改变什么?

在此先感谢

回答

0

应该产生相同的结果。它不以什么方式?

+0

你是对的!在行动它产生正确的结果! ...我在哪里调试?? hhhmmmm .... – 2010-02-11 15:17:43

0

你想没有小组。 我能想到的唯一的办法是这样的:

var result = new {value1 = Table1.Sum(a => a.field1), value2 = Table1.Sum(a => a.field2)}; 

这是一个有点一个坏消息,因为它发出2个独立的查询。

你可以使用linqpad:http://www.linqpad.net/找出你的linq发出的是什么sql。

+0

在我的情况下,我不能使用这种方法,因为实际的声明要复杂得多,因此会引起性能问题。但非常感谢,毕竟知道这很好! – 2010-02-11 15:19:59