如何从日期计算的特定ID中获取记录?

时间:2014-09-01 13:46:27

标签: entity-framework

我有很多记录都有日期时间字段:

  • MyTable(ID,StartDate,...)

我的参数为startDate,我希望获得startDate> =的所有记录,而不是参数中设置的日期,我还希望记录哪个ID是startDate> =参数日期的第一条记录的ID的ID -1(按日期排序结果时的第一条记录)。

类似的东西:

dbContext.MyTable.Where(x => x.ID >= dbContext.MyTable.OrderBy(y => y.StartDate).Where(y => y.StartDate >= myDate).First()).ToList();

但是我收到错误,因为我不能在这个地方使用First()

另外如果我要使用它,首先执行查询到数据库,但我不想这样做,因为我正在构建一个动态查询,我只想要一次数据库。

所以我想知道是否可以将结果的第一个元素用作条件。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Take(1)替换First

dbContext.MyTable
    .Where(x => 
        dbContext.MyTable
       .OrderBy(y => y.StartDate)
       .Where(y => y.StartDate >= myDate)
       .Take(1)
       .Any(y => x.ID >= y.ID))
    .ToList();