将空白条目排序到LINQ查询的底部

sgl*_*ntz 7 linq vb.net sorting sql-order-by linq-to-sql

我试图基于两个字段对LINQ to SQL查询进行排序.第一个字段偶尔为null,它会自动排序到升序查询的顶部.有没有办法让空条目排在最后?

这是一个例子:

From x in SampleDataContext.Event _
Order By x.Date, x.Sequence_Number _
Select x.Date, x.Sequence_Number
Run Code Online (Sandbox Code Playgroud)

会回来:

  • NULL,1
  • 空,4
  • 12/2/09,5
  • 12/3/09,2
  • 12/3/09,3

所需订单:

  • 12/2/09,5
  • 12/3/09,2
  • 12/3/09,3
  • NULL,1
  • 空,4

Dav*_*und 16

如果他们是字符串:

Order By (string.IsNullOrEmpty(x.Date) ? "zzzzzz" : x.Date)
Run Code Online (Sandbox Code Playgroud)

如果它们是可以为空的日期时间:

Order By (x.Date ?? DateTime.MaxValue)
Run Code Online (Sandbox Code Playgroud)