实体框架查找日期范围中的前7天差距

时间:2015-08-24 22:00:37

标签: c# entity-framework date

我在数据库中有一个日期列表。我想找出最好的方法来找到第一天在下一个日期前至少7天。

是否有可以执行此类操作的聚合函数?

return context.SBHolidays.Where((h1, h2) =>DbFunctions.DiffDays(h1, h2) > 6)

1 个答案:

答案 0 :(得分:0)

另一个答案是因为我们放在EF上的包装器而没有工作但是这是另一个应该工作的解决方案

var firstHolidayWithGap = context.SBHolidays.OrderBy(h => h.HolidayDate)
    .Select((h, i) => new {h, i}).Distinct()
    .Join(context.SBHolidays.OrderBy(h => h.HolidayDate)
                                          .Select((h, i) => new {h, i}).Distinct(),
          h1 => h1.i,
          h2 => h2.i + 1,
         (h1, h2) => new {h1 = h1.h.HolidayDate, h2 = h2.h.HolidayDate})
   .Where(h => DbFunctions.DiffDays(h.h1, h.h2) > 7)
   .Select(h => h.h1).FirstOrDefault();