Вопрос по datetime, c#, linq-to-sql – Упорядочение обнуляемого DateTime в Linq to SQL
Я начал использовать Linq to SQL для проекта, над которым я сейчас работаю, и столкнулся с проблемой при упорядочении по полю DateTime, но, поскольку DateTime допускает значения NULL, значения NULL приближаются к фактическим датам.
Так что я очень хочу, чтобы те с датой были вверху (упорядочены в любом случае), а затем все без даты.
jobList = from ju in context.Job_Users_Assigned
where ju.UserID == user.ID
select ju.Job;
return jobList.OrderByDescending(j => j.EndDate);
1
ответ
return from ju in context.Job_Users_Assigned
where ju.UserID == user.ID
orderby ju.Created ?? DateTime.MaxValue descending;
Поэтому я заменяю максимально возможное значение DateTime, когда фактическое & quot; Создать & quot; значение равно нулю. Это поместит все нулевые значения в верхнюю часть.
Другой подход - упорядочить по тому, имеет ли поле даты значение. Это тоже работает:
return from ju in context.Job_Users_Assigned
where ju.UserID == user.ID
orderby ju.Created.HasValue descending
orderby ju.Created descending;
Спасибо Мэтт, это именно то, что я искал. и что касается порядка, это был только пример, я должен упорядочить его другими способами в разных местах, но нулевые значения всегда последние.
dkarzon