不能隐式转换类型'System.Collections.Generic.List& # 39;
本文关键字:List String Generic System 转换 类型 不能 Collections | 更新日期: 2023-09-27 17:50:19
public IEnumerable<Products_Products> getprod()
{
var db = new Model.atengturonDBEntities();
IEnumerable<Products_Products> x = new List<Products_Products>();
var test = (from name in db.Products_Products select
name.ProductName).ToList();
x = test;
return x;
}
为什么我得到这个错误?我也试着把所有的"IEnumerable"改成"List",帮帮我!谢谢:)
不能隐式转换类型"System.Collections.Generic"。列表'到'System.Collections.Generic.IEnumerable'。存在显式转换(您是否缺少强制类型转换?)
错误信息非常清楚。你的LINQ查询返回string
的集合,因为你选择了name.ProductName
,但是你的方法被声明为返回Products_Products
的集合。
更改LINQ查询,不仅返回ProductName
,而且返回产品本身:
IEnumerable<Products_Products> x = new List<Products_Products>();
var test = (from name in db.Products_Products select
name).ToList();
(也可以用db.Products_Products.ToList()
代替)
或者改变你的方法返回IEnumerable<string>
public IEnumerable<string> getprod()
lambda表达式从每个产品获取ProductName,并将其收集为字符串集合。我建议你改成:
return (from name in db.Products_Products select
name).ToList();
您可以使用.FirstOrDefault
或First
,它总是解决我的问题