public List <Curso> Todos(AlumnoCurso alumnoCurso) {//Se debe crear inner join para ignorar los cursos del alumno en cuestion var cursos = new List <Curso>(); try { using (var ctx = new TestContext()) { if (alumnoCurso.Alumno_id > 0) { //Forma más sencilla /*cursos = ctx.Database.SqlQuery<Curso>("SELECT C.* FROM Curso C WHERE C.id NOT IN (SELECT Curso_id FROM AlumnoCurso A WHERE A.Curso_id = C.id AND A.Alumno_id = @Alumno_id)", new SqlParameter("Alumno_id", alumnoCurso.Alumno_id)) * .ToList();*/ var cursosTomados = ctx.AlumnoCurso.Where(x => x.Alumno_id == alumnoCurso.Alumno_id) .Select(x => x.Curso_id) .ToList(); if (alumnoCurso.id > 0) { // Cursos donde no esta el alumno (Cursos tomados, apartir de los tomados) // Para la modificacion de la nota de un curso cursos = ctx.Curso.Where(x => cursosTomados.Contains(x.id)).ToList(); } else { // Cursos donde no esta el alumno (Cursos no tomados, apartir de los tomados) // Para el registro de la nota de un curso cursos = ctx.Curso.Where(x => !cursosTomados.Contains(x.id)).ToList(); } } else { cursos = ctx.Curso.ToList(); } } }catch (Exception) { throw; } return(cursos); }
public AlumnoCurso Eliminar() { var alumnoCurso = new AlumnoCurso(); try { using (var ctx = new TestContext()) { ctx.Entry(this).State = EntityState.Deleted; ctx.SaveChanges(); } } catch (Exception e) { e.ToString(); throw; } return(alumnoCurso); }