2012-06-21 2 views
0

Я работаю над программой, в которой хранится список физических рекламных роликов и их оговорок (диапазон дат). Программа должна иметь возможность находить «открытые точки» для объявлений в категории объявлений.Выбор элементов, которые не находятся в другой таблице, или не находятся в заданном диапазоне дат

У меня есть три таблицы: AdTypes, AdPlaces и бронирование. В настоящее время я реализую запрос, который ищет резервирование, когда даты не сталкиваются с диапазоном дат, выбранным пользователем, и возвращает элементы AdType в виде списка. Этот метод работает, если каждый AdType имеет оговорку в какой-то момент, но он не отображает AdTypes, которые не найдены в таблице Reservations.

Фильтрация осуществляется в PreProcessQuery-запросе AdTypes, как таковые:

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

Как можно «продлить» запрос таким образом, чтобы все те AdTypes, которые имеют никаких оговорок не будут перечислены вместе с «истекли» AdType оговорок?

+0

Не связанный с мясом вашего вопроса, но я думаю, что ваш запрос на получение даты требует некоторой работы. Четвертое сравнение всегда верно, если третье сравнение истинно, и первые два сравнения тоже не имеют большого смысла. Если вы ищете «res» не перекрывает основной период вообще, вам просто нужно «res.Enddate Rawling

+0

, пожалуйста, покажите основные отношения между таблицами –

ответ

0

Возможно, я что-то делаю или не совсем понимаю, чего вы хотите, но как вы можете ожидать, что AdTypes не существует?

Это то, что вы хотите увидеть AdTypes, которые не имеют каких-либо оговорок в течение периода, который вы тестируете?

Если это так, я думаю, вам придется использовать объект adType в качестве основы вашего экрана, а не объект резервирования (с запросом на основе AdType, а не с резервированием). Таким образом, вы можете создать список AdTypes, которые не имеют дублирующих друг друга оговорок.

В этом смысл?

 Смежные вопросы

  • Нет связанных вопросов^_^