Как упорядочить по столбцу с нулевыми значениями последними в структуре сущностей - PullRequest
24 голосов
/ 12 мая 2010

Кто-нибудь знает, как вернуть упорядоченный список строк с нулевыми значениями последними? У меня есть что-то вроде этого:

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

Моя проблема заключается в том, что этот запрос возвращает нулевые значения перед ненулевыми значениями.

Есть мысли?

Ответы [ 3 ]

50 голосов
/ 12 мая 2010

Я бы сделал:

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.

5 голосов
/ 12 мая 2010

Я не знаю, есть ли где-нибудь переключатель, который вы можете щелкнуть. В противном случае прямой подход, вероятно, будет чем-то вроде

    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 голосов
/ 05 февраля 2019
var result = context.Users.OrderBy(x => x.FirstName ?? x.LastName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...