有誰知道如何返回空值最後的有序列表嗎?我有這樣的事情:如何按實體框架中最後一個空值的列進行排序
using(var context = new DomainEntities())
{
var result = context.Users.OrderBy(u => u.LastName).ThenBy(u => u.FirstName);
}
雖然我的問題是,此查詢返回非空值之前的空值。
有什麼想法?
有誰知道如何返回空值最後的有序列表嗎?我有這樣的事情:如何按實體框架中最後一個空值的列進行排序
using(var context = new DomainEntities())
{
var result = context.Users.OrderBy(u => u.LastName).ThenBy(u => u.FirstName);
}
雖然我的問題是,此查詢返回非空值之前的空值。
有什麼想法?
線的東西,我會做:
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。
我不知道是否有某個開關可以翻轉。否則,直接的方法很可能是沿
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);
}
這會產生相當醜陋的SQL,我懷疑。 – 2010-05-12 14:26:35
定義醜陋:)實際上,它不會像你想象的那樣糟糕 - 對於SQL Server 2008來說,至少EF會將這樣的東西變成單個數據庫查詢語句。 – 2010-05-12 17:22:49
這將是一個聲明,是的,只是過於複雜。 – 2010-05-13 13:08:31
所以這確實有用,但我很困惑它爲什麼會起作用。爲什麼要指定LastName == null首先返回非空值? – devlife 2010-05-18 22:39:37
因爲'false'在'true'之前排序。 – 2010-05-19 01:30:08
第一個分號是type-o(在檢查u.FirstName == null後)? – WEFX 2012-02-14 17:34:48