Это, вероятно, немного раздвигает границы Linq-to-Sql, но учитывая, насколько универсальным он был до сих пор, я подумал, что спрошу.
У меня есть 3 запроса, которые выбирают одинаковую информацию и отличаются только в предложении , где , теперь я знаю, что могу передать делегата, но это позволяет только отфильтровать уже возвращенные результаты, но я хочу создать запрос через параметр для обеспечения эффективности.
Вот запрос:
from row in DataContext.PublishedEvents
join link in DataContext.PublishedEvent_EventDateTimes
on row.guid equals link.container
join time in DataContext.EventDateTimes on link.item equals time.guid
where row.ApprovalStatus == "Approved"
&& row.EventType == "Event"
&& time.StartDate <= DateTime.Now.Date.AddDays(1)
&& (!time.EndDate.HasValue || time.EndDate.Value >= DateTime.Now.Date.AddDays(1))
orderby time.StartDate
select new EventDetails
{
Title = row.EventName,
Description = TrimDescription(row.Description)
};
Код, который я хочу применить с помощью параметра, будет:
time.StartDate <= DateTime.Now.Date.AddDays(1) &&
(!time.EndDate.HasValue || time.EndDate.Value >= DateTime.Now.Date.AddDays(1))
Возможно ли это? Я не думаю, что это так, но думал, что я проверю сначала.
Спасибо