有人知道如何返回最后一个空值的有序字符串列表吗?我有这样的事情:
using(var context = new DomainEntities())
{
var result = context.Users.OrderBy(u => u.LastName).ThenBy(u => u.FirstName);
}
我的问题是这个查询在非空值之前返回空值。
有什么想法吗?
答案 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);