如何在实体框架中按空值排序

时间:2010-05-11 21:59:32

标签: entity-framework

有人知道如何返回最后一个空值的有序字符串列表吗?我有这样的事情:

using(var context = new DomainEntities())
{
    var result = context.Users.OrderBy(u => u.LastName).ThenBy(u => u.FirstName);
}

我的问题是这个查询在非空值之前返回空值。

有什么想法吗?

3 个答案:

答案 0 :(得分:48)

我愿意:

using(var context = new DomainEntities())
{
    var result = context.Users.OrderBy(u => u.LastName == null)
                              .ThenBy(u => u.LastName)
                              .ThenBy(u => u.FirstName == null)
                              .ThenBy(u => u.FirstName);
}

......应该产生合理的SQL。

答案 1 :(得分:4)

我不知道是否有一些可以翻转的开关。否则,直接的方法可能是

    using (var context = new DomainEntities())
    {
        var FirstPart = context.Users.Where(u => u.LastName != null);
        var SecondPart = context.Users.Where(u => u.LastName == null);
        var Result = FirstPart.Union(SecondPart);
    }

答案 2 :(得分:0)

var result = context.Users.OrderBy(x => x.FirstName ?? x.LastName);