2009-12-02 14 views
6

Próbuję posortować zapytania LINQ do zapytania SQL na podstawie dwóch pól. Pierwsze pole jest od czasu do czasu wartością NULL, która jest automatycznie sortowana na początku rosnącego zapytania. Czy jest jakiś sposób, aby wpisy zerowe były sortowane na dół?Sortuj puste wpisy na dole zapytania LINQ

Oto przykład:

From x in SampleDataContext.Event _ 
Order By x.Date, x.Sequence_Number _ 
Select x.Date, x.Sequence_Number 

zwróci wartość:

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

pożądanej kolejności:

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

Odpowiedz

14

jeśli są ciągi:

Order By (string.IsNullOrEmpty(x.Date) ? "zzzzzz" : x.Date) 

Jeśli są zerowalne datetimes:

Order By (x.Date ?? DateTime.MaxValue) 
+0

ładny, nie wiedziałem, że można zrobić –

Powiązane problemy