我添加了以下操作,以便将产品归入cat.id。
[HttpPost]
public ActionResult OnlineHome(string CategoryId)
{
OnlineDataModel dm = new OnlineDataModel();
dm.CatagoryData = new List<category>();
dm.ProductData = new List<product>();
dm.CatagoryData = db.categories.ToList();
//dm.ProductData = (from p in db.products where p.CategoryID == Convert.ToInt32(CategoryId) select p).ToList() ;
var data= db.products.Where(d => d.CategoryID == Convert.ToInt32(CategoryId)).ToList();
return View(dm);
}
我收到以下错误
LINQ to Entities无法识别方法&#39; Int32 ToInt32(System.String)&#39;方法,&gt;此方法无法转换为商店表达式。
需要一个解决方案。
答案 0 :(得分:2)
解决方案1:
首先尝试声明Integer变量:
int iCategoryId = Convert.ToInt32(CategoryId);
然后将您的代码更新为:
var data= db.products.Where(d => d.CategoryID == iCategoryId).ToList();
解决方案2(推荐):
确保您的操作收到一个整数并修改变量的类型:
public ActionResult OnlineHome(int CategoryId)
然后以相同的方式更新您的代码:
var data = db.products.Where(d => d.CategoryID == CategoryId).ToList();
随意为两种解决方案添加您自己的演员验证。
答案 1 :(得分:1)
这样做。
int catId = Convert.ToInt32(CategoryId);
var data = db.products.Where(d => d.CategoryID == catId).ToList();