3
我想执行一个Linq to Sql语句来捕获(过滤的)数据集中的计数和平均值。我有什么工作,但它需要对数据库进行两次查询,以便在一个查询中可以进行查询。Linq to Sql用于对一组数据进行计数和平均(无分组)
有趣的是,当我使用group by子句时,可以发出一个查询。
例如:
select count(*), avg(duration) from events
我的LINQ看起来是这样的:
var x = from e in db.events
select e;
x = from i in x
where i.NAME == "foo"
select i;
return new {
count = x.Count(),
avgDuration = x.Average(e => e.Duration)
};
与该代码,我得到两个查询:
SELECT AVG([t0].[DURATION]) AS [value] FROM [dbo].[EVENTS] AS [t0]
和
SELECT COUNT(*) AS [value] FROM [dbo].[EVENTS] AS [t0]
还有别的办法吗?
从你给它看起来像你只会得到一个代码有2列(count,avgDuration)的行是期望的结果吗? – Kumu 2010-07-20 23:45:51
是的,它的表快速快照 - 高查询率(用于仪表板图) – Gavin 2010-07-21 00:44:46