Linq Performance计数总和比1计数快1?

时间:2014-06-04 21:08:40

标签: c# linq entity-framework-6

这项工作就像一个闪光......

hits = s.hits + s.sound_track.Sum(S => S.SoundHistory.Count),

这很慢......无法使用

Songs = s.sound_track.Select(s2 => new {s2.SoundHistory.Count},

如果我不评论此行,请

InnerException = {"Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding."}

为什么呢?我能做得更好吗?我需要显示歌曲数量,最后我可以将所有歌曲命中,但第一个可用,但事实并非如此。

1 个答案:

答案 0 :(得分:3)

我会说第一个和numbres相加,第二个创建对象。它们是非常不同的东西。你不觉得吗?

你有多少首歌?多少个字段?你在哪里得到它们? DB?

我猜想Sum会委托给DB,而且会对列进行快速求和。

在第二个中,你要获取一大堆对象,所以你需要为它们分配内存,初始化它们等等......