У меня есть две таблицы: Outages и PlannedMaintance. Я должен получить записи об отключениях, которые находятся под определенным диапазоном дат, и, если это время относится к PlannedMaintance, пропустить эти записи. например если между 1 may 2019 12:00 AM
до 09 May 2019 11:59 PM
имеется 10 записей, а для плановых таблиц времени записи для параметра StartDownTime установлено значение 3 May 2019 10:35 AM
, а для параметра EndDownTime - 3 may 2019 11:00 AM
. в течение этого периода есть 3 записи о сбоях, мы должны пропустить их, и в списке вывода должно быть 7 записей.
Я не хочу зацикливаться на записях. Будут записи сотен тысяч, это может заглушить сайт.
Вот структура таблицы:
перелив
PlannedDownTime
Запрос Entity Framework:
var netwrokErrorsQuery = db.Outages.Where(_ => _.OutageType == "Network" && _.OutageStart >= startDate && _.OutageEnd <= endDate).ToList().Where(_=>_.OutageStart.Hour<2 && _.OutageStart.Hour > 5 || _.OutageEnd.Value.Hour < 2 && _.OutageEnd.Value.Hour > 5).ToList();
var softwareErrorsQuery = db.Outages.Where(_ => _.OutageType == "Software" && _.OutageStart >= startDate && _.OutageEnd <= endDate).ToList().Where(_ => _.OutageStart.Hour < 2 && _.OutageStart.Hour > 5 || _.OutageEnd.Value.Hour < 2 && _.OutageEnd.Value.Hour > 5).ToList();
var hardwareErrorsQuery = db.Outages.Where(_ => _.OutageType == "Hardware" && _.OutageStart >= startDate && _.OutageEnd <= endDate).ToList().Where(_ => _.OutageStart.Hour < 2 && _.OutageStart.Hour > 5 || _.OutageEnd.Value.Hour < 2 && _.OutageEnd.Value.Hour > 5).ToList();
Я не могу понять, как я могу это сделать