【发布时间】:2014-10-20 15:00:57
【问题描述】:
我添加了后续操作以获取符合 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 无法识别方法 'Int32 ToInt32(System.String)' 方法,并且>此方法无法转换为存储表达式。
需要一个解决方案。
【问题讨论】:
-
你试过 Int32.Parse() 代替吗?
-
将值转换为 int 然后将该值传递给表达式。但是为什么不直接将参数
int改为字符串,这样您就不需要进行任何转换(DefaultModelBiner会为您完成) -
感谢斯蒂芬的帮助。有用。为什么我在表达式中将其转换为 int32 不起作用。
-
查询必须能够转换为实际的SQL语句,但C#方法不能转换为SQL
标签: asp.net-mvc-4