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.– carlosfigueira
I put in the question my Models and class Curses <- this class does not persist in the bank. @carlosfigueira.
– Novato