【发布时间】:2014-07-03 07:46:51
【问题描述】:
我有假期 EF 实体:
public class Holiday {
public int HolidayId {
get;
set;
}
public DateTime StartDate {
get;
set;
}
public DateTime EndDate {
get;
set;
}
public bool IsActive {
get;
set;
}
}
我需要获取当前月份中至少有一天的所有记录。
例如:
StartDate = "2014-06-29"
EndDate = "2014-07-03"
如果当前月份是 7 月,那么我应该得到该记录,因为在那之后我将不得不创建一个 List<int> 影响当前月份的所有日期。所以在最后一个示例中,我将不得不创建一个 List<int> 的:
7 月 1,2 日和 3 日。
例如:
StartDate = "2014-07-23"
EndDate = "2014-08-01"
我也应该得到那张唱片。
我在做:
var holidays = Holidays.Where(h=> h.IsActive == true && h.StartDate < currentDate && h.EndDate > currentDate).ToList();
但是,查询没有做我需要的。
有什么线索吗?
这个呢:
.Where(h => h.IsActive == true && (h.StartDate.Month == currentDate.Month || h.EndDate.Month == currentDate.Month)).ToList();
更新:
当我的月份不等于 currentDate.Month 的日期范围时,这将不起作用。喜欢:
StartDate = "2014-06-29"
EndDate = "2014-08-03"
【问题讨论】:
-
什么是
currentDate? -
currentDate 是今天。
-
您的第二个示例可以正常工作,但我假设您可能也想检查
Year。 -
我尝试了我的第二个示例,但是当我有例如 StartDate="2014-06-23" 和 EndDate="2014-08-01" 时它不起作用,因为当月没有一个日期 = = currentDate.Month.
-
你的第一个例子应该可以工作......
标签: c# linq entity-framework-4 linq-to-entities