我已经开始使用Linq to SQL来处理正在进行的项目,并且我在使用DateTime字段进行排序时遇到了问题,但由于DateTime允许空值,因此空值将小于其中的实际日期。 / p>
所以我非常想要那些有日期的人(按照任何一种方式排序),然后是所有没有设定日期的人。
jobList = from ju in context.Job_Users_Assigned
where ju.UserID == user.ID
select ju.Job;
return jobList.OrderByDescending(j => j.EndDate);
答案 0 :(得分:49)
这有点像黑客,但它似乎与Linq一起使用SQL:
return from ju in context.Job_Users_Assigned
where ju.UserID == user.ID
orderby ju.Created ?? DateTime.MaxValue descending;
所以当实际的“Create”值为null时,我将替换最大可能的DateTime值。这将把所有空值放在最上面。
另一种方法是根据日期字段是否具有值来排序。这也有效:
return from ju in context.Job_Users_Assigned
where ju.UserID == user.ID
orderby ju.Created.HasValue descending
orderby ju.Created descending;