Я не на 100% понимаю ваши требования.В первой строке вы запросили записи «где диапазон дат ввода находится между двумя полями дат», но в строке «Дополнительно» вы подразумеваете, что не хотите возвращать записи, в которых дата начала встречи не равнадата окончания вашего ввода.Я считаю, что это два разных требования, поэтому я дам вам два разных запроса.
Первый запрос:
from t1 in db.Appointments
where date1 >= t1.AppointmentStart
where date2 <= t1.AppointmentEnd
select t1;
Второй запрос:
from t1 in db.Appointments
where date2 > t1.AppointmentStart
where date1 < t1.AppointmentEnd
select t1;
Первый запрос возвращает записи, которые «содержат» введенные даты.
Второй запрос возвращает записи, которые «перекрывают» введенные даты.
Я думаю, что имеет больше смысла, что вы хотитезапрос перекрытия, и этот ответ будет соответствовать вашему требованию «14:00 - 15:00, не возвращает значение для 15: 00-16: 00».
Дайте мне знать, если я ошибся, понимая вашетребования и необходимо внести какие-либо изменения.