Sélectionner les documents les plus récents en utilisant LINQ to entities
J'ai un simple Linq to Enities table de la requête et obtenir les documents les plus récents en utilisant le champ Date
J'ai donc essayé ce code:
IQueryable<Alert> alerts = GetAlerts();
IQueryable<Alert> latestAlerts =
from a in alerts
group a by a.UpdateDateTime into g
select g.OrderBy(a => a.Identifier).First();
D'erreur:
NotSupportedException: La méthode 'Grouper' n'est pas pris en charge.
Est-il un autre moyen de le faire?
Merci beaucoup!
Groupement par un DateTime ne fait pas de sens. Si la résolution était, disons, en millisecondes, vous auriez peu de chances d'avoir un groupe avec plus d'un élément en elle. Ou est-ce vraiment un champ de Date?
OriginalL'auteur Begemotya | 2010-05-03
Vous devez vous connecter pour publier un commentaire.
J'ai eu un similair besoin. Je veux obtenir le tapé enregistrement, pas un nouvel objet anonyme. De le faire .(Première) peut vous aider.
Utiliser le OrderByDescending de les commander et de prendre le dessus avec (Premier). Vous avez regroupés par votre identifiant de sorte que vous devriez recevoir le nouveau record pour chaque identificateur.
pourquoi avez-vous besoin d'utiliser FirstOrDefault ici?
Si je me souviens bien, j'ai été, dans certains cas, on arrive avec un ensemble vide, et ainsi de courir .(Première) a été lancer une exception. Je ne voulais pas faire une exception, je voulais juste une nulle pour vérifier plus tard.
OriginalL'auteur Rowan Blaqflame
Si il n'y a pas de raison de groupe, vous pouvez simplement changer votre requête un peu:
en fait il ne sont rien. Jusqu'à ce que vous faites quelque chose avec latestAlerts comme .First() ou .(10) la base de données hit va se produire.
Donc le "quand il s'"... sans doute, l'affiche a été à la recherche pour obtenir une réponse complète.
OriginalL'auteur Benny
Il devrait être
GroupBy
est certainement pris en charge par Linq-to-EntitésDe toute façon j'ai besoin de groupe par 2 champs "UpdateDateTime" et "Id" afin d'obtenir l'enregistrement le plus récent pour chaque id
OriginalL'auteur BlueRaja - Danny Pflughoeft
Donc la réponse est:
Ce sera le retour de la documents les plus récents.
Je suis bloqué sur votre commentaire ici. Dans mes tests, je suis aussi arriver {Clé, Date} mais vous avez marqué ce en tant que résolu. Comment obtenez-vous l'alerte des objets?
OriginalL'auteur Begemotya