在Linq to SQL中排序可为空的DateTime

我已经开始使用Linq to SQL来处理正在进行的项目,并且在按DateTime字段进行排序时遇到了问题,但由于DateTime允许空值,因此空值将小于其中的实际日期。

因此,我非常希望那些日期位于顶部(按任意方式排序),然后是所有没有日期设置的日期。

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

这有点像黑客,但它似乎与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;