我想执行一个Linq to Sql语句,该语句捕获(过滤的)数据集中的计数和平均值.我的工作原理,但在一个查询中应该可以对数据库进行两次查询.
有趣的是,当我使用group by子句时,我可以得到一个查询.
例如:
select count(*), avg(duration) from events
Run Code Online (Sandbox Code Playgroud)
我的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)
};
Run Code Online (Sandbox Code Playgroud)
使用该代码,我得到两个查询:
SELECT AVG([t0].[DURATION]) AS [value] FROM [dbo].[EVENTS] AS [t0]
Run Code Online (Sandbox Code Playgroud)
和
SELECT COUNT(*) AS [value] FROM [dbo].[EVENTS] AS [t0]
Run Code Online (Sandbox Code Playgroud)
还有另外一种方法吗?
我有一个布尔逻辑问题.我有以下if语句应该能够合并为一个布尔表达式.请帮忙.我花了太多时间在这上面,我实在太羞于问我的同事.
if (denyAll == true & allowOne == false) return false;
if (denyAll == true & allowOne == true) return true;
if (denyAll == false & allowOne == false) return false;
if (denyAll == false & allowOne == true) return true;
return true; //should never get here
Run Code Online (Sandbox Code Playgroud)
我确信有一个优雅的解决方案.
谢谢