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

时间:2015-11-06 14:41:57

标签: asp.net-mvc

我有这个动作:

public ActionResult Index(int? idCursos)
{
    var usuarios = db.Usuario.ToList();
    if(!(idCursos == null))
    {
        usuarios = from Usuario in db.Usuario
                                from Relaciones in db.Relaciones
                                where Relaciones.Cursos.idCurso == idCursos
                                select new
                                {
                                    Nombre = Usuario.Nombre,
                                    Apellido = Usuario.Apellido,
                                    Usuario.DNI,
                                };

    }
    return View(usuarios);
}

我收到此错误:

  

错误1无法将类型System.Linq.IQueryable<AnonymousType#1>隐式转换为System.Collections.Generic.List<LibreriaEntidad.Usuario>。存在显式转换(您是否错过了演员?)

关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:1)

也许这会让你接近......我不确定你如何建立你的人际关系,但如果Usuario >> Relaciones >> Cursos那么你可以做这样的事情......

public ActionResult Index(int? idCursos)
{
    var model = db.Usuario;
    if (idCursos.HasValue)
    {
        model = model.Where(a => a.Relaciones.Any(a => a.Cursos.idCurso == idCursos));
    }
    return View(model.ToList());
}

答案 1 :(得分:-1)

我相信你只需要在你的LINQ查询上调用 usuarios = from Usuario in db.Usuario from Relaciones in db.Relaciones where Relaciones.Cursos.idCurso == idCursos select new { Nombre = Usuario.Nombre, Apellido = Usuario.Apellido, Usuario.DNI, }.ToList();

  <button class="btn default-btn advancedbtn" ng-click="vm.redirect()">Advanced</button>