J'ai une table, «lasttraces», avec les champs suivants.
Id, AccountId, Version, DownloadNo, Date
Les données ressemblent à ceci:
28092|15240000|1.0.7.1782|2009040004731|2009-01-20 13:10:22.000
28094|61615000|1.0.7.1782|2009040007696|2009-01-20 13:11:38.000
28095|95317000|1.0.7.1782|2009040007695|2009-01-20 13:10:18.000
28101|15240000|1.0.7.1782|2009040004740|2009-01-20 14:10:22.000
28103|61615000|1.0.7.1782|2009040007690|2009-01-20 14:11:38.000
28104|95317000|1.0.7.1782|2009040007710|2009-01-20 14:10:18.000
Comment puis-je, dans LINQ to SQL , obtenir uniquement la dernière trace de chaque AccountId (celui avec la date la plus élevée)?
c#
.net
linq
linq-to-sql
Bas Jansen
la source
la source
Réponses:
Si vous voulez juste la dernière date pour chaque compte, vous utiliserez ceci:
Si vous voulez l'intégralité de l'enregistrement:
la source
method-chain
solution pour cela.(from n in table ...).First()
?First()
appel doit s'appliquer à l'g.Order...
expression (sous-requête).Voici un moyen simple de le faire
Jetez également un œil à cet excellent endroit LINQ - Exemples LINQ to SQL
la source
Si vous voulez tout l'enregistrement, voici une méthode lambda:
la source
Cela pourrait être quelque chose comme:
la source
Allez d'une manière simple de faire ceci: -
Création d'une classe pour contenir les informations suivantes
Accédez à la liste des sites stockés sur un objet ArrayList. Et exécuté la requête suivante pour la trier par ordre décroissant par niveau.
Une fois que j'ai trié la collection par ordre décroissant, j'ai écrit le code suivant pour obtenir l'objet qui vient en haut
Cela a fonctionné comme un charme.
la source