错误:无法将类型'System.Linq.IQueryable'转换为'OMS.Models.Product'存在显式转换(您是否错过了转换?)

时间:2017-03-15 09:01:38

标签: c# linq-to-sql asp.net-mvc-5

在我的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'存在显式转换(您是否错过了演员?)

1 个答案:

答案 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(); 
}