Перекрывающиеся записи между двумя датами с использованием Linq

В моем приложении пользователь может поручить другому пользователю утверждать заказы.

Что мне нужно проверить, так это отсутствие циклических ссылок, так что еслиUser A делегированUser B в течение определенного периода,User B не может делегироватьUser A за любое время в течение этого периода, т.е.dd/mm/yyyy):

Delegator    Delegated To    DateFrom    DateTo
User A       User B          01/11/2012  08/11/2012
User A       User B          16/12/2012  24/12/2012

Это код, который я должен проверить на совпадения:

var overlaps = .Session.QueryOver<DelegateOrderApproval>()
    .Where(x => x.DateFrom > DateTime.Now && delegateOrderApproval.DelegatedUser.UserId == x.DelegatorUser.UserId)
    .And(x => x.DateFrom >= delegateOrderApproval.DateFrom && delegateOrderApproval.DateTo <= x.DateTo
              || (x.DateFrom >= delegateOrderApproval.DateFrom && x.DateTo <= delegateOrderApproval.DateTo)
              || (x.DateFrom <= delegateOrderApproval.DateFrom && x.DateTo >= delegateOrderApproval.DateFrom)
              || (x.DateFrom <= delegateOrderApproval.DateFrom && x.DateTo >= delegateOrderApproval.DateTo))
    .List();

Если я попытаюсь добавить следующую запись:

Delegator: User B
Delegated  To: User A
Date From: 15/11/2012
DateTo:    21/11/2012

не должно быть никакого конфликта, посколькуUser B не является делегатомUser A в этот период времени? Он забирает запись в декабре.

Я искал код, перекрывающий диапазон дат, и перепробовал все, но, похоже, ничего не работает.

Есть идеи?

Ответы на вопрос(1)

Ваш ответ на вопрос