选择不在另一个表中或不在给定日期范围内的项目

时间:2012-06-21 04:03:06

标签: linq visual-studio-lightswitch

我正在开发一个程序,用于保存实体广告位列表及其预订(日期范围)。该计划需要能够为广告类别中的广告找到“空缺点”。

我有三个表:AdTypes,AdPlaces和Reservations。目前,我正在实施一个查询,搜索日期不会与用户选择的日期范围发生冲突的预订,并将AdType项目作为列表返回。如果每个AdType在某个时刻都有预订,则此方法有效,但它不会列出在预订表中找不到的AdType。

过滤在AdTypes查询的PreProcessQuery中完成,如下所示:

query = query.Where(r => r.Reservations.Any(res => (res.Begindate > Begindate && Enddate < res.Enddate) || (res.Enddate < Begindate && Enddate > res.Begindate)));

如何“扩展”查询,以便所有没有预订的AdType会与“已过期”的AdType预订一起列出?

1 个答案:

答案 0 :(得分:0)

也许我在搞什么,或者不太了解你想要什么,但你怎么能期望看到不存在的AdType?

您是否希望在测试期间看到没有任何预订的AdType?

如果是这样,我想你必须使用adType实体作为屏幕的基础,而不是预订实体(基于AdType的查询,而不是预订)。这样,您就可以生成没有任何重叠预订的AdType列表。

这有意义吗?