根据日期过滤结果并获取一个先前的值

时间:2016-11-10 13:15:07

标签: c# linq

我有一个IDbSet我正在查询如下:

var list = MessageSet.Where(x => x.Date >= fromDate && x.Date <= toDate);

稍后我会执行其他LINQ查询,例如SelectOrderBy等等。

为了按照我想要的方式计算和转换数据,我还需要fromDate之前的最后一个值,我可以将其作为:

var prevValue = MessageSet.Where(x => x.Date < fromDate).OrderByDescending(x => x.Date).FirstOrDefault();

但是,我正在与另一个Join进行IQueryable,所以这对我不起作用

有没有办法合并这些查询?

1 个答案:

答案 0 :(得分:0)

你能否建立工会以获得日期和之前的所有条目?

var list = MessageSet.Where(x => x.Date >= fromDate && x.Date <= toDate)
                     .Union(MessageSet
                            .Where(x=>x.Date < fromDate).OrderByDescending(x=>x.Date).Take(1)
    );