Linq选择特定日期之前的项目或

时间:2016-12-01 17:14:11

标签: c# linq

我有一个Linq-to-Entity查询,它在特定日期之前抓取所有项目,我想知道是否有人知道如何在同一查询中获取大于该日期的第一条记录。

context.Items.Where(x => x.CheckDate < DateTime.Now)

有没有办法修改它,以便我可以在不进行两次查询后获取第一个日期?

3 个答案:

答案 0 :(得分:2)

您需要两个查询,但要合并结果,您可以使用 concat

var result =context.Items.Where(x => x.CheckDate < DateTime.Now).Concat( context.Items.OrderByDescending(t=>t.CheckDate >Yourdatetime).FirstOrDefault());

答案 1 :(得分:2)

var items = from u in context.Items
                                 let dt = (from i in context.Items
                                  where i.CheckDate> DateTime.Now orderby i.CheckDate ).FirstOrDefault()
                                 where u.CheckDate <=dt
                             select u;   

答案 2 :(得分:0)

你不需要做所有这些......

context.Items.Where(x => x.CheckDate < DateTime.Now).OrderByDescending(x => x.CheckDate).FirstOrDefault();