我正在開發一個Asp.Net MVC應用程序,我是Linq和CodeFirst的新手。在我的控制器中,這是我寫的操作:Lambda表達式來檢查值是否爲空或等於
public ActionResult Filter(int? PaperType , int? PaperGram , int? Brand)
{
var FilteredResult ;
if (PaperType.HasValue && PaperGram.HasValue && Brand.HasValue) {
FilteredResult = db.Stocks.where(m => m.PaperType == PaperType && m.PaperGram == PaperGram && m.Brand == Brand);
}
else if (PaperType.HasValue && PaperGram.HasValue) {
FilteredResult = db.Stocks.where(m => m.PaperType == PaperType && m.PaperGram == PaperGram);
}
else if (PaperType.HasValue && Brand.HasValue) {
FilteredResult = db.Stocks.where(m => m.PaperType == PaperType && m.Brand == Brand);
}
// and ifs continue to last
/*
.
.
.
.
*/
else {
FilteredResult = db.Stocks;
}
return View(FilteredResult);
}
但我知道這不是在Linq和Codefirst中最好的方法。那麼,你能否更好地解決這個問題?
從這個問題我明白所有其他標準必須添加只有PaperType.HasValue所以你必須像我一樣移動所有ifs(除非我錯了......) –
在我看來,他需要這些patameters的不同組合 –