在 EF 核心中获取正在进行的事件
Get ongoing events in EF core
我的活动注册申请的数据库中有一些活动,日期可能由
设置
public DateTime? DateStart { get; set; }
public DateTime? DateEnd { get; set; }
这两个字段都可以为空,如果有任何一个,我都想获得正在进行的事件
1) DateStart 与今天的日期相同,或者
2) 现在介于 DateStart 和 DateEnd
之间
public async Task<List<EventInfo>> GetOngoingEventsAsync()
{
return await _db.EventInfos
.Where(i =>
i.Published &&
i.DateStart.Value.Date == DateTime.Now.Date ||
i.DateStart.Value.Date <= DateTime.Now.Date <= i.DateEnd.Value.Date)
.OrderBy(s => s.DateStart)
.ToListAsync();
}
但是我上面的代码returns:Operator '<=' cannot be applied to operands of type 'bool' and 'DateTime'
这应该是您的代码的正确形式:
(DateTime.Now.Date >= i.DateStart.Value.Date && DateTime.Now.Date <= i.DateEnd.Value.Date)
错误背后的原因是条件 i.DateStart.Value.Date <= DateTime.Now.Date
的第一部分将被验证并将转换为 Boolean
。之后,您尝试将 Boolean
与 DateTime
进行比较,例如 <= i.DateEnd.Value.Date
。所以这就是为什么我用 &&
运算符将两个条件分开。
(DateTime.Now.Date >= i.DateStart.Value.Date && DateTime.Now.Date <= i.DateEnd.Value.Date)
我的活动注册申请的数据库中有一些活动,日期可能由
设置public DateTime? DateStart { get; set; }
public DateTime? DateEnd { get; set; }
这两个字段都可以为空,如果有任何一个,我都想获得正在进行的事件 1) DateStart 与今天的日期相同,或者 2) 现在介于 DateStart 和 DateEnd
之间public async Task<List<EventInfo>> GetOngoingEventsAsync()
{
return await _db.EventInfos
.Where(i =>
i.Published &&
i.DateStart.Value.Date == DateTime.Now.Date ||
i.DateStart.Value.Date <= DateTime.Now.Date <= i.DateEnd.Value.Date)
.OrderBy(s => s.DateStart)
.ToListAsync();
}
但是我上面的代码returns:Operator '<=' cannot be applied to operands of type 'bool' and 'DateTime'
这应该是您的代码的正确形式:
(DateTime.Now.Date >= i.DateStart.Value.Date && DateTime.Now.Date <= i.DateEnd.Value.Date)
错误背后的原因是条件 i.DateStart.Value.Date <= DateTime.Now.Date
的第一部分将被验证并将转换为 Boolean
。之后,您尝试将 Boolean
与 DateTime
进行比较,例如 <= i.DateEnd.Value.Date
。所以这就是为什么我用 &&
运算符将两个条件分开。
(DateTime.Now.Date >= i.DateStart.Value.Date && DateTime.Now.Date <= i.DateEnd.Value.Date)