Подтвердить что ты не робот

Заказ nullable DateTime в Linq to SQL

Я начал использовать Linq для SQL для работы над проектом im, и я столкнулся с проблемой при заказе с помощью поля DateTime, но поскольку DateTime допускает nulls, значения нулей приближаются к минимальным фактическим датам.

Итак, я очень хочу, чтобы те, у которых дата была в верхней части (упорядочена в любом случае), затем все те, у кого нет даты.

jobList = from ju in context.Job_Users_Assigned
          where ju.UserID == user.ID
          select ju.Job;
return jobList.OrderByDescending(j => j.EndDate);
4b9b3361

Ответ 1

Это немного взломанный, но он работает с Linq to SQL:

return from ju in context.Job_Users_Assigned
          where ju.UserID == user.ID
          orderby ju.Created ?? DateTime.MaxValue descending;

Итак, я подменяю максимально возможное значение DateTime, когда фактическое значение "Создать" равно null. Это положит все нулевые значения вверху.

Другим подходом является упорядочение того, имеет ли поле даты значение. Это тоже работает:

return from ju in context.Job_Users_Assigned
          where ju.UserID == user.ID
          orderby ju.Created.HasValue descending
          orderby ju.Created descending;