c#下一个和上一个日期的Lambda表达式

时间:2012-08-27 22:07:52

标签: c# asp.net-mvc-3 lambda

我有以下数据库表'Date':

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();

高于表达对吗?我怎么能做这个工作?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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

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