J'ai une entité avec les champs suivants GUID taskId, GUID SubTaskId, DateTime TimestampComment obtenir l'horodatage max et GroupBy un autre champ dans LINQ to Entities
TaskId peut être un à plusieurs avec le SubTaskId. C'est comme une clé composite presque.
Je souhaite écrire une expression ou expressions résultant dans le plus récent parmi chaque TaskId ie
TaskId SubTaskId Horodatage
1 A 22/11/2010 15: 48: 49,727
1 B 22/11/2010 16: 24: 51,117
2 C 15/11/2010 11: 49: 05,717
2 D 15/11/2010 14: 02: 11,467
se traduirait par une séquence ne contenant que:
TaskId SubTaskId Horodatage 1 B 22/11/2010 16: 24: 51,117
2 D 15/11/2010 14: 02: 11,467
Cette expression fonctionne très bien pour montrer de tous TaskId et TimeStamps
var q1 =
from req in myEntity
orderby req.TaskId
select new
{
req.TaskId,
req.SubTaskId,
req.Timestamp
};
mais je voudrais montrer que le dernier Tim estamp pour chaque TaskId. Toutes mes tentatives d'ajout d'un maximum à l'expression échouent. L'affichage (http://stackoverflow.com/questions/2034800/how-do-you-find-the-group-wise-max-in-linq) semblait proche, mais je ne pouvais pas le traduire en quelque chose de fonctionnel. Peut-être qu'un foreach
est nécessaire.
Excellentissime! Merci. – Blanthor