2014-03-27 34 views
0

我必須把單選按鈕的值動態成的Linq查詢,因此該值在下面一個單選按鈕的值的代碼替換CUSTOMERNAME。這一切都住在實體框架的MVC項目中。那麼如何在Linq查詢中編寫佔位符?LINQ的佔位符列名

public ActionResult Index(string whatToSearchFor, string radioButtonValue) 
{ 
    if (search == null) 
    { 
     var results = from p in db.Orders 
         select p; 

     ViewBag.Orders = results; 
     return View(); 
    } 
    else 
    { 
     var results = from p in db.Orders 
         where values 
         where p.customerName.StartsWith(search) 
         select p; 

     ViewBag.Orders = results; 
     return View(); 
    } 
} 

更新,什麼工作對我來說:

public ActionResult Index(string whatToSearchFor, string radioButtonValue) 
{ 

    if(radioButtonValue == "NameOfTheRadioButton1") 
    { 
     var results = from p in db.Orders 
         where values 
         where p.column1.StartsWith(search) 
         select p; 

     ViewBag.Orders = results; 
     return View(); 
    } 
    else if(radioButtonValue == "NameOfTheRadioButton2") 
    { 
     var results = from p in db.Orders 
         where values 
         where p.column2.StartsWith(search) 
         select p; 

     ViewBag.Orders = results; 
     return View(); 
    } 
    else 
    { 
     var results = from p in db.Orders 
         select p; 

     ViewBag.Orders = results; 
     return View(); 
    } 
} 

回答

1

你將不得不使用查詢語法使用lambda語法切換。

Expression<Func<Order, bool>> condition = null; 

if(rbFirst.Checked) 
    condition = o => o.FirstThing.StartsWith(search); 
else if(rbSecond.Checked) 
    condition = o => o.SecondThing.StartsWith(search); 
// etc... 

var results = db.Orders.Where(condition); 
+0

感謝您爲我帶來正確的方向。我剛剛檢查了'radiobutton字符串值'的值,這對我很有用。我會更新我的帖子。 – oldsport