Как получить максимальное значение столбца с помощью Entity Framework?
чтобы получить максимальное значение столбца, содержащего целое число, я могу использовать следующий T-SQL comand
SELECT MAX(expression )
FROM tables
WHERE predicates;
можно ли получить тот же результат с Entity Framework.
предположим, у меня есть следующая модель
public class Person
{
public int PersonID { get; set; }
public int Name { get; set; }
public int Age { get; set; }
}
как я могу получить возраст самого старого человека?
int maxAge = context.Persons.?
7 ответов
попробуй такое int maxAge = context.Persons.Max(p => p.Age);
и using System.Linq;
в верхней части файла
Если список пуст, я получаю исключение. Это решение будет учитывать этот вопрос:
int maxAge = context.Persons.Select(p => p.Age).DefaultIfEmpty(0).Max();
или вы можете попробовать это:
(From p In context.Persons Select p Order By age Descending).FirstOrDefault
может помочь, если вы хотите добавить фильтр:
context.Persons
.Where(c => c.state == myState)
.Select(c => c.age)
.DefaultIfEmpty(0)
.Max();
как многие сказали-это версия
int maxAge = context.Persons.Max(p => p.Age);
создает исключение, когда таблица пуста.
использовать
int maxAge = context.Persons.Max(x => (int?)x.Age) ?? 0;
или
int maxAge = context.Persons.Select(x => x.Age).DefaultIfEmpty(0).Max()