我已经纠结了几个小时了,我相信有一个简单的解释。
我有一个SQL Server表,包含列DayOfWeek
(DateTime
), StartTime
(Time
), EndTime
(Time
)。
我试图写一个lambda选择,得到所有行,其中DateTime.Now
是相同的DayOfWeek
,大于StartTime
,小于EndTime
。
我想我必须使用SQL Server类型Time
作为c# Timespan
,但我只是没有得到它的权利。
我已经试着从这里的解释(日期时间。),但无济于事。
我的代码行是:
context.DayAndTimeModifiers
.Where(x => x.IsActive && (int)d.DayOfWeek == x.DayOfWeek
&& d.??? > x.StartTime
&& d.??? < x.EndTime)
非常感谢。
我不知道我怎么错过了DateTime.Now.TimeOfDay是我需要的。这是调整后的代码行…
var d = DateTime.Now;
return context.DayAndTimeModifiers
.Where(x => x.IsActive && (int)d.DayOfWeek == x.DayOfWeek &&
d.TimeOfDay > x.StartTime && d.TimeOfDay < x.EndTime).ToList();