使用LINQ to Entities的Timespans总和

问题描述 投票:1回答:2

我有一个LINQ调用组,然后将PossessionTime.Tick值作为一个新的Timespan求和。这之前工作正常,但现在我需要将集合保持为IQueryable而不是List。

PossessionTime = new TimeSpan(x.Sum(p => p.PossessionTime.Ticks))

有了这个改变,我现在得到以下错误:

LINQ to Entities中仅支持无参数构造函数和初始值设定项。

我已经研究过使用DbFunctions,但它没有任何可以帮助我不想的东西。

我唯一的选择是将列表移动到内存中并将时间相加吗?

IQueryable如下:

return stats.GroupBy(x => x.Id).OrderByDescending(x => x.Sum(a => a.Kills))
            .Select(x => new WeaponItem
            {         
                PossessionTime = new TimeSpan(x.Sum(p => p.PossessionTime.Ticks))
            });

我需要将它保持为IQueryable,因为我在分页中使用它。

c# .net linq linq-to-entities timespan
2个回答
© www.soinside.com 2019 - 2024. All rights reserved.