如何使用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.? 

试试这个int maxAge = context.Persons.Max(p => p.Age);

并确保您using System.Linq; 在你的文件的顶部

或者你可以试试这个:

 (From p In context.Persons Select p Order By age Descending).FirstOrDefault 
 maxAge = Persons.Max(c => c.age) 

或类似的规定。

如果列表是空的,我得到一个exception。 这个解决scheme将考虑到这个问题:

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

VB.Net它会

 Dim maxAge As Integer = context.Persons.Max(Function(p) p.Age) 

也许帮助,如果你想添加一些filter:

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