Gostaria de saber qual a maneira correta de instanciar entidades diferentes. Exemplo:
private TurmaDAO dao;
public TurmaController(TurmaDAO dao)
{
this.dao = dao;
}
Nesse caso queria utilizar métodos de outros DAO's.
No caso quero chamar o "DisciplinaProfessorTurma" que é uma outra entidade que fiz baseado na normalização de dados, chamando essa entidade eu consigo criar uma rotina de Realizar esse cadastro a cada cadastro de turma.
Eu consegui fazer isso sem a divisão de camadas entre Models e DAO, realizando as açoes de CRUD direto no Controller.
Exemplo:
if (ModelState.IsValid)
{
_banco.Matriculas.Add(novaMatriculaAluno);
_banco.SaveChanges();
}
var aluno = _banco.Alunos.FirstOrDefault(x => x.Id == novaMatriculaAluno.AlunoId);
var disciplinas = (from d in _banco.Disciplinas
join dpt in _banco.DisciplinaDoProfessoresNasTurmas on d.Id equals dpt.DisciplinaId
where d.Id == dpt.DisciplinaId && dpt.TurmaId == novaMatriculaAluno.TurmaId
select d).ToList();
var mat = _banco.Matriculas.FirstOrDefault(x => x.AlunoId == aluno.Id);
var con = _banco.Conceitos.FirstOrDefault(x => x.MatriculaId == mat.Id);
if (mat != null && con == null)
{
var conceito = new Conceito
{
MatriculaId = mat.Id
};
//matricular nas disciplinas da turma
foreach (var d in disciplinas)
{
conceito.DisciplinaId = d.Id;
_banco.Conceitos.Add(conceito);
_banco.SaveChanges();
}
return RedirectToAction("Index");
}
Gostaria de saber se meu código esta muito poluído e difícil de ler....