2012-04-07 40 views
1

我有一个查询,看起来像这样:LINQ到SQL排序依据,选择空条目

var TheOutput = from u in MyDC.TheTable 
       where .... 
       orderby u.TheDateTimeUsed 
       select new MyModel() 
       { 
        .... 
        TheDateCreated = u.TheDateTimeCreated, 
        TheDateUsed = u.TheDateTimeUsed 
        ... 

       }; 

return TheOutput.Take(10).ToList(); 

u.DateTimeUsed是一个可空日期。如果该值为空,那么我希望这些记录首先出现在我加载的10列表中。

我怎样才能做到这一点?

谢谢。

+0

可能的重复 - http://stackoverflow.com/questions/1107767/ordering-nullable-datetime-in-linq-to-sql – 2012-04-07 14:06:53

回答

3

也许是这样的:

var TheOutput = from u in MyDC.TheTable 
       where .... 
       orderby !u.TheDateTimeUsed.HasValue 
       orderby u.TheDateTimeUsed 
       select new MyModel() 
       { 
        .... 
        TheDateCreated = u.TheDateTimeCreated, 
        TheDateUsed = u.TheDateTimeUsed 
        ... 

       }; 

你也可以做这样的:

var TheOutput = from u in MyDC.TheTable 
       where .... 
       orderby u.TheDateTimeUsed??DateTime.MinValue 
       select new MyModel() 
       { 
        .... 
        TheDateCreated = u.TheDateTimeCreated, 
        TheDateUsed = u.TheDateTimeUsed 
        ... 

       }; 

不是像你一样的第一个。