无法隐式转换类型System.Linq.IQueryable'到' System.Collections.Generic.List

时间:2016-08-30 14:59:05

标签: c# entity-framework linq generics

我试图返回一个列表来显示我的所有内容,这些内容位于表中,其id等于_id(在第一个If语句中,否则返回all)但是我收到此错误

  

无法将类型System.Collections.Generic.List(Project1.Models.EF_Model.Phone_book)隐式转换为System.Collections.Generic.List(Project1.Models.EF_Model.Phone_BookEntities1)

这是我的代码

public List<Models.EF_Model.Phone_BookEntities1> Select(int? _id)
{
       var Ref_Phone = new Models.EF_Model.Phone_BookEntities1();
        if (_id.HasValue)
        {
            return Ref_Phone.Phone_book.Where(p => p.Id == _id); //here error shows up
        }
        else
        {
            Ref_Phone.Phone_book.ToList();
        }
} 

我试图添加这个 .ToList()它没有用,我不知道该怎么做

2 个答案:

答案 0 :(得分:3)

您需要返回Phone_book而不是Models.EF_Model.Phone_BookEntities1的列表,这是您的上下文类型:

public List<Models.EF_Model.Phone_book> Select(int? _id)
{
    var Ref_Phone = new Models.EF_Model.Phone_BookEntities1();
    return id.HasValue? Ref_Phone.Phone_book.Where(p => p.Id == _id).ToList():Ref_Phone.Phone_book.ToList();

} 

答案 1 :(得分:0)

只需移除(上的(Ref_Phone,然后将.ToList()放在linq表达式的末尾。