T-SQL / EF Где Col - true и false для фильтрации результатов - PullRequest
0 голосов
/ 19 января 2019

У меня вонючий холод, и я не могу на всю жизнь привести свой мозг в движение, чтобы понять это!

jobStops.Where(jobStop => jobStop.TrailerId == trailer.TrailerId && 
              (jobStop.IsDelivery == true && 
               jobStop.JobStopDateTime.Value.Date.CompareTo(date.AddDays(x).Date) >= 0) && 
              (jobStop.IsDelivery == false && 
               jobStop.JobStopDateTime.Value.Date.CompareTo(date.AddDays(x).Date) <= 0))

Очевидно, я знаю, что у нас не может быть, где столбец является истинным и ложным, поскольку это невозможно, но то, что я ищу, - это оператор where, который нужно прочитать дважды, чтобы отфильтровать себя.

Таким образом, приведенный выше запрос в основном говорит: извлеките из базы данных строку трейлера, где он был доставлен в будущем, и он был собран в прошлом, поэтому я знаю, что на тот момент было на трейлере.

(jobStop.IsDelivery == true && 
 jobStop.JobStopDateTime.Value.Date.CompareTo(date.AddDays(x).Date) >= 0)

Это относится к товарам, которые будут поставлены в будущем

(jobStop.IsDelivery == false && 
 jobStop.JobStopDateTime.Value.Date.CompareTo(date.AddDays(x).Date) <= 0)

В конечном итоге это предназначено для фильтрации результатов приведенного выше предложения where, чтобы в нем отображались только те элементы, которые были собраны.

Я знаю, что это, вероятно, действительно просто, но проект должен был завершиться вчера, и я просто не могу обойти его с этим вонючим холодом.

1 Ответ

0 голосов
/ 19 января 2019

Вы можете сделать это, используя Job ID

jobStops.Where(jobStop => ((jobStop.TrailerId == trailer.TrailerId && jobStop.JobId ==trailer.JobId)&& (
              (jobStop.IsDelivery == true && jobStop.JobStopDateTime.Value.Date.CompareTo(date.AddDays(x).Date) >= 0) ||
              (jobStop.IsDelivery == false && jobStop.JobStopDateTime.Value.Date.CompareTo(date.AddDays(x).Date) <= 0))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...