问题描述
我正在尝试使用EF从sql检索数据并将其放入viewmodel类型的列表中。
但是,当我尝试检索数据时,会出现以下错误:Cannot Implicitly Convert Type System.Collections.Generic.List<.string> to 'string'
我只是想从数据库中检索ID和ProductName列。
任何帮助将不胜感激。
这是我的viewmodel:
public class Productviewmodel
{
public int ID { get; set; }
public string Product { get; set; }
}
这是我的控制器代码:
public ActionResult TableReport()
{
List<Productviewmodel> products = new List<Productviewmodel>();
Productviewmodel product = new Productviewmodel();
product.Product = db.Products.Select(z => z.ProductName).ToList();
product.ID = db.Products.Select(z => z.ProductID).ToList();
return View();
}
解决方法
@GSerg:大声读出您的代码。 “创建一个空的ProductViewModels列表。创建一个空的ProductViewModel。将所有产品名称的列表分配为该单个空ProductViewModel的产品名称。将所有产品ID的列表分配为该单个空的ProductViewModel的ID”。难怪它不起作用,对吗?相反,您应该完成var product = db.Products.Select(z => new ProductViewModel(){ID = z.ProductID,Product = z.ProductName})。ToList();
,您正在将列表放在string
将您的Viewmodel更改为
public class ProductViewModel
{
public int ID { get; set; }
public List<string> Product { get; set; }
}
您还试图将列表放入int
中。那也不行。