日期:2014-05-20  浏览次数:20713 次

一个关于group by的linq查询
请问可不可以把where条件放到group by后面,或者说linq里有没有 group by all。

var work = GetWorkList(p=>true);
                var wo = from p in work
                         where (p.ProjectID == id && p.IsCheck == true)                         
                         group p by p.UserObjectID into g 
                         select new { g.Key, TotalTime = g.Sum(p => p.UseOfTime) };

------解决方案--------------------
1。先过滤再group by
2. 先group by 再过滤

你觉得哪个性能更好一些,更快一些?

很明显的问题,不知道你想干什么
------解决方案--------------------
group by all?
 可以这样
group c  by  c.id,c.name,c.address
------解决方案--------------------
引用:
请问可不可以把where条件放到group by后面,或者说linq里有没有 group by all。
C# code

var work = GetWorkList(p=>true);
                var wo = from p in work
                         where (p.ProjectID == id && p.……

这种写法是正常的写法