如何使用 Linq to entity 从列中检索最大的日期和时间?

How can I retrieve the biggest date and time from the column using Linq to entity?

我在 sql table 中有一个名为 DateMeasure 的日期时间列。

我在我的 .net 项目中使用 entity framework6。

这是我的例子 table:

 Id           | NumberP  | TrackNumber | DateMeasure
28092|15240000|1.0.7.1782|2009040004731|2008-01-20 13:10:22.000
28094|61615000|1.0.7.1782|2009040007696|2010-05-20 13:11:38.000
28095|95317000|1.0.7.1782|2009040007695|2011-08-20 13:10:18.000
28101|15240000|1.0.7.1782|2009040004740|2015-11-20 14:10:22.000
28103|61615000|1.0.7.1782|2009040007690|2015-11-20 14:11:38.000
28104|95317000|1.0.7.1782|2009040007710|2009-02-20 14:10:18.000

我想借助 Linq to entity 从 table 获取的行:

28103|61615000|1.0.7.1782|2009040007690|2015-11-20 14:11:38.000

如何使用 Linq to entity 从列中检索最大(最新)日期和时间

您可以使用 Linq 中 IQuery 对象的 OrderBy 方法按 DateMeasure 列排序并获取第一个条目。

(from s in context.Table
       orderby s.DateMeasure descending).First()

或与:

context.Table
       .OrderByDescending(s => s.DateMeasure)
       .First();

OrderByDescending方法将查询按降序排序,您也可以使用OrderBy按升序排序。

您可以使用 Max 扩展名获取最大日期:

var maxDate = context.Table.Max(m => m.DateMeasure);

然后,您可以使用 FirstOrDefault 获取该实体:

var model = context.Table.FirstOrDefault(m => m.DateMeasure == maxDate);

实际上,您只需一个查询即可完成:

var model = context.Table.FirstOrDefault(m => m.DateMeasure == context.Table.Max(x => x.DateMeasure));