Error - Only primitive enumeration types or types are supported in this context in Asp.Net MVC

Asked

Viewed 221 times

1

As explained in this link Only constructors without parameters and initializers are supported in LINQ to Entities

return View(db.Cursos.ToList().Select(c => new CursoInscricoes(c, db.AlunoCursos.FirstOrDefault(ac => ac.Aluno.Equals(aluno) && ac.Curso.Equals(c)) != null)));

I made my changes only I came across another mistake.
Error: Notsupportedexception was unhandled by user code
Cannot create a constant value of type 'Meuprojeto.Models.Aluno'. Only primitive enumeration types or types are supported in this context." Error falls on this code snippet here new CursoInscricoes(c, db.AlunoCursos.FirstOrDefault(ac => ac.Aluno.Equals(aluno) && ac.Curso.Equals(c)) != null))); Someone could help me solve it?!

Model Aluno

namespace MeuProjeto.Models {
public class Aluno
{
    [Key]
    public int Id { get; set; }

    [Required(ErrorMessage = "O campo Nome é obrigatório")]
    [MinLength(4, ErrorMessage = "O campo Nome deve ter no mínimo 4 caracteres")]
    [Display(Name = "Nome")]
    public string Nome { get; set; }


    [Display(Name = "CPF")]
    [Required(ErrorMessage = "O campo CPF é obrigatório")]
    [Index(IsUnique = true)]
    [CPFAtributo]
    public string CPF { get; set; }

    [Display(Name = "RG")]
    public string RG { get; set; }

    [Display(Name = "E-mail")]
    [Required(ErrorMessage = "O campo E-mail é obrigatório")]
    [RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Endereço de e-mail informado não é válido.")]
    public string Email { get; set; }

    [Display(Name = "Usuário")]
    [MinLength(4, ErrorMessage = "O campo Usuário deve ter no mínimo 4 caracteres")]
    [Required(ErrorMessage = "O campo Usuário é obrigatório")]
    public string Usuario { get; set; }

    [Display(Name = "Senha")]
    [Required(ErrorMessage = "O campo Senha é obrigatório")]
    public string Senha { get; set; }

    [Display(Name = "Telefone Celular")]
    [Required(ErrorMessage = "Informe um número de Celular")]
    public string Telefone_Celular { get; set; }

    [Display(Name = "Endereço")]
    [Required(ErrorMessage = "O Endereço é obrigatório")]
    public string Endereco { get; set; }

    [Display(Name = "Estado")]
    [Required(ErrorMessage = "Informe um Estado")]
    public string Estado { get; set; }

    [Display(Name = "Matrícula")]
    [Required(ErrorMessage = "Informe a Matrícula")]
    public string Matricula { get; set; }

    public string Perfil { get; set; }

    public virtual ICollection<AlunoCurso> AlunoCursos { get; set; }

    public Aluno()
    {

    }

}

}

Model Alunocurso

namespace MeuProjeto.Models {
public class AlunoCurso
{
    [Key]
    public int Id { get; set; }

    public int AlunoId { get; set; }

    public int CursoId { get; set; }

    public bool Aprovado { get; set; }

    public virtual Aluno Aluno { get; set; }

    public virtual Curso Curso { get; set; }
}}

This My Class Courses

namespace MeuProjeto.Models {
public class CursoInscricoes
{
    public Curso Curso { get; set; }

    public bool Inscrito { get; set; }

    public CursoInscricoes(Curso curso, bool inscrito)
    {
        this.Curso = curso;
        this.Inscrito = inscrito;
    }}
  • What kind of MeuProjeto.Models.Aluno? If it is a complex type (e.g., a class - public class Aluno), then the EF does not know how to compare objects of this type, as the message is saying.

  • I put in the question my Models and class Curses <- this class does not persist in the bank. @carlosfigueira.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.