我有很多记录都有日期时间字段:
我的参数为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()
。
另外如果我要使用它,首先执行查询到数据库,但我不想这样做,因为我正在构建一个动态查询,我只想要一次数据库。
所以我想知道是否可以将结果的第一个元素用作条件。
感谢。
答案 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();