如何使用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();