2

我有以下数据库表“日期”:

DateId      Date
1       08/05/2012
2       08/01/2012
3       08/25/2012
4       08/15/2012
5       08/22/2012
.....

要获取最近的日期,我使用以下表达式:

var recentDate = db.Date.OrderByDescending(d => d.Date).FirstOrDefault();  

我如何使用 recentDate 来使用 lambda 表达式获取上一个日期或下一个日期?

当我尝试使用 latestDate 时,我收到一条错误消息:

operator > cannot be applied to operands of type 'System.DateTime' and 'App.Models.Date

这是我在前一个日期尝试的:

var previous date = top10Date.Where(d => d.Date > latestDate).OrderBy(d => d.Date).FirstOrDefault();

上面的表达对吗?我怎样才能使这项工作?

4

2 回答 2

2

您正在尝试将 DateTime 与 App.Models.Date 进行比较,编译器不知道如何进行比较。

您可能正在尝试执行以下操作:

var previous date = top10Date.Where(d => d.Date > latestDate.Date).OrderBy(d => d.Date).FirstOrDefault();
于 2012-08-27T22:11:44.853 回答
0

您的 recentDate 不是 DateTime,它是整个 Date 对象......只需选择 Date 部分,您也将带回更少的数据。

var recentDate = db.Date.OrderByDescending(d => d.Date).Select(d => d.Date).FirstOrDefault();
于 2012-08-27T22:26:37.670 回答