次のクエリがあります。
private IEnumerable<EventSchedule> GetTodaySchedules(string tab)
{
var today = DateTime.Now.Date;
var result = Database.EventSchedules.Where(s =>
s.RecurrenceStart.Value.Date <= today &&
s.RecurrenceStart.Value.TimeOfDay > today.TimeOfDay &&
s.RecurrenceEnd.Value.Date >= today &&
s.BaseEvent.EndShow > DateTime.Now &&
s.BaseEvent.IsApproved.Value && !s.IsRemoved.Value &&
s.BaseEvent.EventsCategories.Any(c => c.EventCategory.Name == tab)).ToList();
}
このクエリは、EventSchedule
テーブルから今日のイベントを選択します。問題は、時々tab
空で、このクエリはレコードを返さないことです。私はそのようなものを書くことができます:
private IEnumerable<EventSchedule> GetTodaySchedules(string tab)
{
var today = DateTime.Now.Date;
if(string.IsNullOrWhiteSpace(tab))
{
var result = Database.EventSchedules.Where(s =>
s.RecurrenceStart.Value.Date <= today &&
s.RecurrenceStart.Value.TimeOfDay > today.TimeOfDay &&
s.RecurrenceEnd.Value.Date >= today &&
s.BaseEvent.EndShow > DateTime.Now &&
s.BaseEvent.IsApproved.Value && !s.IsRemoved.Value).ToList();
{
else
{
var result = Database.EventSchedules.Where(s =>
s.RecurrenceStart.Value.Date <= today &&
s.RecurrenceStart.Value.TimeOfDay > today.TimeOfDay &&
s.RecurrenceEnd.Value.Date >= today &&
s.BaseEvent.EndShow > DateTime.Now &&
s.BaseEvent.IsApproved.Value && !s.IsRemoved.Value &&
s.BaseEvent.EventsCategories.Any(c => c.EventCategory.Name == tab)).ToList();
}
}
しかし、それは醜いです。他の方法はありますか?
ありがとう。