【发布时间】:2019-11-07 14:04:07
【问题描述】:
我有一个给定的日期,我想在表格上获取大于给定日期的元素,但如果找不到,我想返回带有NULL 日期的元素。
例如:
表格:
如果给定的日期是例如 2019-10-20,我想返回 ID 为 3 的元素。
如果给定的日期是例如 2019-11-20,我想返回 ID 为 4 的元素。
我试过这样做:
var parameter = _db.Parameter
.OrderBy(x => x.EndDate)
.First(givenDate < x.EndDate) || x.EndDate == null);
但它总是返回最后一个元素。我需要做什么?
【问题讨论】:
-
OrderBy会将空值放在首位,因此您的First方法将始终返回空值。 -
@Taian 答案已更新以优化速度和内存。
标签: c# linq linq-to-sql