Saya tidak 100% jelas tentang kebutuhan Anda. Di baris pembuka Anda, Anda meminta catatan "di mana rentang tanggal input berada di antara dua bidang tanggal", tetapi di baris "Selain itu" Anda menyiratkan bahwa Anda tidak ingin mengembalikan catatan di mana tanggal mulai janji temu tidak sama tanggal akhir input Anda. Saya menganggap ini sebagai dua persyaratan yang berbeda, jadi saya akan memberi Anda dua pertanyaan yang berbeda.
Pertanyaan pertama adalah:
from t1 in db.Appointments
where date1 >= t1.AppointmentStart
where date2 <= t1.AppointmentEnd
select t1;
Pertanyaan kedua adalah:
from t1 in db.Appointments
where date2 > t1.AppointmentStart
where date1 < t1.AppointmentEnd
select t1;
Kueri pertama mengembalikan catatan yang "berisi" tanggal input.
Kueri kedua mengembalikan catatan yang "tumpang tindih" dengan tanggal input.
Saya pikir lebih masuk akal jika Anda menginginkan kueri yang tumpang tindih dan kueri ini akan memenuhi persyaratan "14:00 - 15:00 tidak mengembalikan nilai untuk 15:00-16:00".
Beri tahu saya jika saya membuat kesalahan dalam memahami persyaratan Anda dan perlu melakukan perubahan apa pun.