由空

2016-02-11 52 views
1

數的LINQ排序的結果我有一個查詢這回我跟隨着結果由空

level_1_srg_key level_2_srg_key level_3_srg_key 
NULL   NULL   1 
NULL   1    NULL 
NULL   1    1 
1    NULL   NULL 
1    NULL   1 
1    1    NULL 
1    1    1 
1    2    1 
1    2    3 
3    1    1 

這是LINQ查詢:

var query = from t in dbContext.SYSTEM_BEHAVIOURAL_W 
          where l.Contains(t.SRG_KEY) 
          group t by 
           new 
           { 
            t.LEVEL_1_SRG_KEY, 
            t.LEVEL_2_SRG_KEY, 
            t.LEVEL_3_SRG_KEY 
           } 
           into grp 
          select 
          grp.Key; 

我需要訂購這第一的成績按行這有哪些有0空行之後有1個NULL 行後2 NULL

如何做到這一點?

回答

3
query = query.OrderBy(t => 
     (t.LEVEL_1_SRG_KEY == null ? 0 : 1) 
    + (t.LEVEL_2_SRG_KEY == null ? 0 : 1) 
    + (t.LEVEL_3_SRG_KEY == null ? 0 : 1)); 
+0

它的工作原理謝謝 –