在我的ProductVM中,我已将Domain Class(Product)声明为其中一个属性。但是,当我通过方法查询域类时,我无法将结果查询分配给模型。
ProductVm{
public Product Product { get; set;}
public List<Image> Images { get; set; }
public List<Specification> Specifications { get; set; }
}
这是我在控制器中的编辑方法
public ActionResult Edit(int?id) {
ProductVM Vm = new ProductVM();
Vm.Product = GetProductDetails(id);
Vm.Images = GetImages(id);
Vm.Specifications = GetSpecifications(id);
return View(Vm);
}
public Product GetProductDetails(int? id) {
var prod_details = from p in db.Products
where p.ProductID == 5002
select p;
return prod_details; //// Error: cannot implicity convert type
}
抛出此错误:
'System.Linq.IQueryable'到'OMS.Models.Product'存在显式转换(您是否错过了演员?)
答案 0 :(得分:3)
您将返回IQueryable of Products,而不是单个产品。试试这个:
public Product GetProductDetails(int? id)
{
var prod_details = from p in db.Products
where p.ProductID == id // i think you meant id not 5002
select p;
return prod_details.FirstOrDefault();
}