2011-03-03 48 views
3

一個字符串名稱進行LINQ的OrderBy如果我有如何基於對

public ActionResult ListExpenseItems(long id) 
{ 
      IQueryable<I_ITEM> expenseItems = er.GetExpenseItems(id); 
      return PartialView(expenseItems); 
} 

和LINQ

public IQueryable<I_ITEM> GetExpenseItems(long id) 
{ 
      return from i in db.I_ITEM 
        where i.ExpenseId == id 
        orderby i.ExpenseItemId ascending 
        select i; 
} 

如果我通過在作爲參數傳遞給LINQ方法的字符串,說"ExpenseTitle" ,我該怎麼做OrderBy i.ExpenseTitle以便orderby總是匹配字符串參數?

這樣的邏輯..但實際上是正確的:

db.I_ITEM.OrderBy(x => (orderBy == 'date') ? x.Date : (orderBy == 'id') ? x.Id : (orderBy == 'cost') ? x.Cost : x.Id); 
+0

可能重複[如何動態指定Linq OrderBy參數?](http://stackoverflow.com/questions/7265186/how-do-i-specify-the-linq-orderby-argument-dynamically) – 2017-03-16 07:39:19

回答