Ik ben niet 100% duidelijk over uw vereisten. In je openingsregel vroeg je om records "waar de invoerdatum valt tussen twee datumvelden", maar in de regel "Aanvullend" geef je aan dat je geen records wilt retourneren waarvan de startdatum van de afspraak niet gelijk is aan de einddatum van uw invoer. Ik neem aan dat dit twee verschillende vereisten zijn, dus ik geef je twee verschillende vragen.
De eerste vraag is:
from t1 in db.Appointments
where date1 >= t1.AppointmentStart
where date2 <= t1.AppointmentEnd
select t1;
De tweede vraag is:
from t1 in db.Appointments
where date2 > t1.AppointmentStart
where date1 < t1.AppointmentEnd
select t1;
De eerste query retourneert records die de invoerdatums "bevatten".
De tweede query retourneert records die de invoerdatums "overlappen".
Ik denk dat het logischer is dat u de overlappende zoekopdracht wilt en dat deze voldoet aan uw vereiste "14:00 - 15:00 retourneert geen waarde voor 15:00-16:00".
Laat het me weten als ik een fout heb gemaakt bij het begrijpen van uw vereisten en als ik wijzigingen moet aanbrengen.