Не са ми 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“.
Уведомете ме, ако допуснах грешка, като разбрах вашите изисквания и трябва да направя промени.