2010-05-11 17 views
19

Son olarak boş değerlere sahip sıralı bir dizinin nasıl döndürüleceğini bilen var mı? Böyle bir şey var:Nesne çerçevesindeki son değerlerle sütun nasıl sıralanır

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

Benim sorunum olsa bu sorgu boş olmayan değerler önce boş değerler döndürür olmasıdır.

Herhangi bir düşünce?

cevap

38

çizgisinde bir şey olurdu.

+6

Yani bu işe yarıyor ama neden işe yaradığı konusunda kafam karıştı. Neden LastName == değerini belirtmek null null null olmayan değerleri döndürür? – devlife

+7

Çünkü 'false'' true' öncesi. –

+0

Bu ilk yarı virgül bir tür-o (u.FirstName == null için kontrol ettikten sonra)? – WEFX

4

Çevirebileceginiz bir yer degistirme olup olmadigini bilmiyorum.

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); 
} 

... makul SQL üretmelidir: Aksi takdirde, yalındır yaklaşım muhtemelen yapacağını

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

Bu oldukça çirkin bir SQL üretecek, şüpheleniyorum. –

+0

Çirkin tanımlayın :) Aslında, düşündüğünüz kadar kötü olmayacak - en azından SQL Server 2008 için, EF böyle bir şeyi tek bir db sorgu deyimine dönüştürüyor. –

+0

Bir ifade, evet, sadece aşırı karmaşık olacak. –

İlgili konular