【发布时间】:2014-08-11 20:16:57
【问题描述】:
这可能稍微突破了 Linq-to-Sql 的界限,但考虑到它迄今为止的用途广泛,我想我会问。
我有 3 个查询选择相同的信息,并且仅在 where 子句中有所不同,现在我知道我可以传入一个委托,但这仅允许我过滤已经返回的结果,但我希望通过参数建立查询以确保效率。
这里是查询:
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))
这可能吗?我不这么认为,但我想我会先检查一下。
谢谢
【问题讨论】:
标签: c# linq-to-sql