不能隐式转换类型'System.Collections.Generic.List

本文关键字:Generic Collections List Emp HelpdeskDAL System 转换 类型 不能 | 更新日期: 2023-09-27 18:13:17

尝试从MongoDB数据库中的Employee集合中获取所有记录,作为DAO中的方法,然后将它们作为包含Employee所有实例的列表返回。但是,当我尝试在

方法中返回我的empist时
public Employee GetAll()
{
    List<Employee> empList = new List<Employee>();            
    try
    {
        empList.AddRange(repo.GetAll<Employee>().ToList());
    }
    catch (Exception ex)
    {
        DALUtils.ErrorRoutine(ex, "EmployeeDAO", "GetAll");
    }
    return empList;
}

它告诉我我

"不能隐式转换类型"System.Collections.Generic。列表"HelpdeskDAL。员工' ' '(错误代码:CS0029)

如果它们不是同一类型,这是有意义的。我没能看到HelpdeskDAL.Employee实例的列表与单个Employee实例的类型不同。

任何建议吗?

不能隐式转换类型'System.Collections.Generic.List<HelpdeskDAL.Emp

您说您想返回整个列表,但是您的返回类型只是一个对象。Change to a List<Employee>:

public List<Employee> GetAll() { }

你说:

我没能看到HelpdeskDAL.Employee实例的列表与单个Employee实例的类型不同。

List<T>T(在您的例子中是Employee)是完全不同的对象。你不能把它们换掉。想象一下,如果你在返回对象上调用emp.Name,如果它是一个列表,会发生什么。什么Name ?哪个员工?编程不能靠猜测。你需要准确地告诉编译器你想要什么

您应该返回您的雇员列表<>:

public List<Employee> GetAll()
{
    List<Employee> empList = new List<Employee>();
    try
    {
        empList.AddRange(repo.GetAll<Employee>().ToList());
    }
    catch (Exception ex)
    {
        DALUtils.ErrorRoutine(ex, "EmployeeDAO", "GetAll");
    }
    return empList;
}

您的empListList<Employee>类型,但在您的方法中您返回Employee。使方法返回类型为List<Employee>将解决问题

public List<Employee> GetAll()
{
    List<Employee> empList = new List<Employee>();            
    try
    {
        empList.AddRange(repo.GetAll<Employee>().ToList());
    }
    catch (Exception ex)
    {
        DALUtils.ErrorRoutine(ex, "EmployeeDAO", "GetAll");
    }
    return empList;
}

相关文章: