Как получить максимальное значение столбца с помощью Entity Framework?
чтобы получить максимальное значение столбца, содержащего целое число, я могу использовать следующую команду T-SQL
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()
Comments