Не может неявно преобразовать тип ‘System.Коллекции.Generic.List<>’ в ‘System.Коллекции.Generic.ListСотрудник>’

#c# #asp.net

#c# #asp.net

Вопрос:

Я хочу получить данные от контроллера MVC в анонимном типе, используя angularjs. Но вот проблема в том, чтобы получить этот путь и показать ошибку времени компиляции. Как мне написать код? ASP.Net MVC,

   public JsonResult Get_AllEmployee()
    {
        using (EmployeeInfoContext Obj = new EmployeeInfoContext())
        {
            List<Employee> Emp = Obj.Employees.Select(e => new {
                EmpId=e.EmpId,
                EmpName = e.EmpName,
                DeptId = e.DeptId,
                CityId = e.CityId
            }).ToList();
            return Json(Emp, JsonRequestBehavior.AllowGet);
        }
    }
  

Комментарии:

1. Как следует из ошибки, Emp определяется как список Employee , но вы пытаетесь поместить туда анонимный тип ( new {} ) . Вам либо нужно изменить объявление Emp (и использовать неявную типизацию, потому что вы используете анонимный тип), либо вам нужно фактически сопоставить его с Employee ним.

2. Анонимный тип никогда не может быть равен конкретному типу. Используйте либо все анонимные, либо все конкретные, а не оба.

Ответ №1:

Вам либо 1. не нужен анонимный тип, либо 2. не следует пытаться присвоить его типу, которым он не является.

1.

 public JsonResult Get_AllEmployee()
{
    using (EmployeeInfoContext Obj = new EmployeeInfoContext())
    {
        List<Employee> Emp = Obj.Employees.ToList();
        return Json(Emp, JsonRequestBehavior.AllowGet);
    }
}
  

и 2.

 public JsonResult Get_AllEmployee()
{
    using (EmployeeInfoContext Obj = new EmployeeInfoContext())
    {
        var Emp = Obj.Employees.Select(e => new {   //notice var here
            EmpId=e.EmpId,
            EmpName = e.EmpName,
            DeptId = e.DeptId,
            CityId = e.CityId
        }).ToList();

        return Json(Emp, JsonRequestBehavior.AllowGet);
    }
}