J'ai un appel LINQ de type group by, puis j'additionne les valeurs PossessionTime.Tick sous la forme d'un nouveau Timespan. Cela fonctionnait bien avant, mais maintenant j'ai besoin de garder la collection comme un IQueryable au lieu d'une liste.
PossessionTime = new TimeSpan(x.Sum(p => p.PossessionTime.Ticks))
Avec cette modification, j'obtiens maintenant l'erreur suivante :
Seuls les constructeurs et initialisateurs sans paramètre sont supportés par LINQ. to Entities.
J'ai envisagé d'utiliser DbFunctions
mais il n'y a rien qui puisse aider je ne pense pas.
Ma seule option est-elle de déplacer la liste en mémoire et d'y additionner le temps ?
L'IQueryable se présente comme suit :
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))
});
J'ai besoin de le garder en tant que IQueryable car je l'utilise dans la pagination.