无法将类型'System.Collections.Generic.List <String>'隐式转换为'System.Collections.Generic.IEnumerable <turon.Model.Products_Products>

RE0*_*24C 2 c# ienumerable list

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;
}
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误?我还尝试将所有“ IEnumerable”更改为“ List”,请帮帮我!谢谢 :)

无法将类型'System.Collections.Generic.List'隐式转换为'System.Collections.Generic.IEnumerable'。存在显式转换(您是否缺少演员表?)

Mar*_*zek 5

错误消息很清楚。您的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();
Run Code Online (Sandbox Code Playgroud)

(也可以用just代替db.Products_Products.ToList()

或更改您的返回方法 IEnumerable<string>

public IEnumerable<string> getprod()
Run Code Online (Sandbox Code Playgroud)