2013-10-28 72 views
0

由於某種原因,以下查詢順序不會執行任何排序。我是否正確地做這件事?它只做一個選擇,根本沒有排序。按實體框架動態排序

var orders = (from order in db.GridExampleTable  
         select order); 
switch (sortBy) 
     { 
      default: orders.OrderBy(o => o.UnitPrice); 
       break; 
      case "CustomerName": 
       if (sortDir == "asc") 
       orders.OrderBy(o => o.CustomerName); 
       else 
        orders.OrderByDescending(o => o.CustomerName); 
        break; 

     } 
+2

(提示:有*固有地修改初始序列/對象中沒有*的IEnumerable或IQueryable的方法 - 使用所有這些方法的*返回值。*) – user2864740

回答

1

.OrderBy返回一個IOrderedEnumerable,它不會對您的查詢返回的原始枚舉進行排序。

+0

謝謝很多,所以我可以有這個排序?這種方式不可能嗎? –

3

您並未收集您的訂單結果。你需要

orders = orders.OrderBy(o=>o.UnitPrice); 

+0

非常感謝你!有效! –

+0

@GregCzechowicz你應該將其中一個標記爲答案,以幫助其他可能有類似問題的人找到合適的幫助:) – Excommunicated