114 votes

Comment obtenir la valeur maximale d'une colonne à l'aide d'Entity Framework ?

Pour obtenir la valeur maximale d'une colonne contenant un entier, je peux utiliser la commande T-SQL suivante

 SELECT MAX(expression )
FROM tables
WHERE predicates;

Est-il possible d'obtenir le même résultat avec Entity Framework.

Disons que j'ai le modèle suivant

 public class Person
{
  public int PersonID { get; set; }
  public int Name { get; set; }
  public int Age { get; set; }
}

Comment connaître l'âge de la personne la plus âgée ?

 int maxAge = context.Persons.?

179voto

krolik Points 2573

Essayez ceci int maxAge = context.Persons.Max(p => p.Age);

Et assurez-vous d'avoir using System.Linq; en haut de votre fichier

71voto

Carlos Toledo Points 955

Si la liste est vide, j'obtiens une exception. Cette solution prendra en compte ce problème :

 int maxAge = context.Persons.Select(p => p.Age).DefaultIfEmpty(0).Max();

12voto

danicode Points 340

Ou tu peux essayer ceci :

 (From p In context.Persons Select p Order By age Descending).FirstOrDefault

8voto

Foy Points 131

Peut-être aider, si vous souhaitez ajouter un filtre :

 context.Persons
.Where(c => c.state == myState)
.Select(c => c.age)
.DefaultIfEmpty(0)
.Max();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X