Disons que j'ai un Modèle défini comme: Foo {Id, Date}
.
Est-il un moyen de faire un boolean expression lambda afin que je puisse obtenir les Foo avec la date la plus récente? quelque chose le long des lignes de (f => f.Date IsLatest)
?
OriginalL'auteur evablack | 2012-04-11
DateTime
.en effet, corrigé
Voir aussi MaxBy() de Jon Skeet morelinq de la bibliothèque
OriginalL'auteur ionden
Étant donné que vous n'avez pas fourni d'informations sur le nom de votre entités (je suis en supposant que
foos
ici); quelque chose comme ceci:Et si il y a plus d'un avec le max de la date (je sais que vous avez dit " Foo avec la dernière...", mais je ne connais pas la résolution de votre temps ici) que vous aurez en fait être après quelque chose de plus comme Guffa de réponse.
Être conscient que soit la solution sera de bénéficier massivement à partir d'un index sur la colonne date. Si il n'y a pas d'index et la table est grande? Ensuite, il peut être très lente.
Oui, mais ce n'est même pas en c#, donc il ne compile pas, je suis sûr que vous savez que, trop. Je ne suis pas convaincu qu'il n'y a aucune réelle avantages dans emballage EF de cette façon. Sûrement une méthode raccourci sur votre ObjectContext de la classe de GetLatestFoo " qui fait quelque chose comme ci-dessus serait la chose la plus simple?
OriginalL'auteur Andras Zoltan
Pour faire une expression qui détermine si la date est la plus récente, vous devez connaître la date la plus récente, c'est à dire:
Une autre approche serait de trier les éléments:
Ou de l'utilisation Globale:
Foo.Where(f => f.Date == latestDate);
🙂Oui, vous avez raison. Merci pour la capture.
OriginalL'auteur Guffa
Essayez ceci:
OriginalL'auteur McGarnagle
Vous pouvez essayer le code suivant:
OriginalL'auteur Waqar