我有一个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,因为我在分页中使用它。