Как сделать так, чтобы не было никакого существующего сдвига, имеющего общие времена ?
что самая лучшая практика запроса в EF, чтобы проверить, если есть конфликты в начале и в конце смены ?
Что я уже пробовал:
я создал таблицу MySQL "emp_shifts"с этой колонной "
------------------------ -- id ------- INT(11) -- -- name ------- VARCHAR(45) -- -- start ------- TIMESTAMP(5) -- -- end ------- TIMESTAMP(5) -- -- note ------- VARCHAR(245) --
как я могу проверить новую запись перед ее вставкой , чтобы проверить, есть ли какие-либо конфликты во времени, поэтому я хочу убедиться, что каждая смена имеет уникальный период
я пишу этот запрос, но не уверен, что он будет работать нормально ..
dbEntities DB01 = ConnectionTools.OpenConn(); TimeSpan start = StartInput.TimeSpan; TimeSpan end = EndInput.TimeSpan; var CheckUniquePeriod_start = DB01.emp_shifts.Any(u => start >= u.start.Value.TimeOfDay && start <= u.end.Value.TimeOfDay); if (CheckUniquePeriod_start) { StartInput.ErrorText = strings.MAKE_SURE_THAT_START_TIME_DONT_CONFLICT_WITH_ANOTHER_SHIFT; valid = false; } var CheckUniquePeriod_end = DB01.emp_shifts.Any(u => end >= u.start.Value.TimeOfDay && end <= u.end.Value.TimeOfDay); if (CheckUniquePeriod_end) { StartInput.ErrorText = strings.MAKE_SURE_THAT_END_TIME_DONT_CONFLICT_WITH_ANOTHER_SHIFT; valid = false; }
Mohibur Rashid
Вопрос очень неоднозначный.
Golden Basim
извините , я обновил вопрос
Richard MacCutchan
Используйте команду SELECT для поиска записей, которые имеют конфликтующие времена; независимо от того, с чем вы сравниваете.
Golden Basim
извините , я обновил вопрос
Richard MacCutchan
В чем же вопрос?