public List <CursosDtos.CursosHorarioListSearch> GetCursosHorariosSearchDtos() { var cursosList = (from c in dbCtx.Cursos join ch in dbCtx.CursosHorarios on c.IdCurso equals ch.IdCurso join cp in dbCtx.CursosProfesors on ch.IdCursosHorarios equals cp.IdCursosHorarios into JoinedCP from cp in JoinedCP.DefaultIfEmpty() join h in dbCtx.Horarios on ch.IdHorario equals h.IdHorario into JoinedH from h in JoinedH.DefaultIfEmpty() where cp.Activo select new { c.Descripcion, c.Activo, ch.IdCursosHorarios, Horario = h.Descripcion } ).ToList(); var localList = new List <CursosDtos.CursosHorarioListSearch>(); for (int i = 0; i < cursosList.Count; i++) { localList.Add(new CursosDtos.CursosHorarioListSearch { Id = i + 1, Descrip = cursosList[i].Descripcion, Activo = cursosList[i].Activo, Key = cursosList[i].IdCursosHorarios, Horario = cursosList[i].Horario }); } return(localList); }
public IEnumerable <CursosDtos.ReporteCursosList> ReporteCursosDtos() { var query = from c in dbCtx.Cursos join ch in dbCtx.CursosHorarios on c.IdCurso equals ch.IdCurso into JoinedCH from ch in JoinedCH.DefaultIfEmpty() join h in dbCtx.Horarios on ch.IdHorario equals h.IdHorario into JoinedH from h in JoinedH.DefaultIfEmpty() join cp in dbCtx.CursosProfesors on ch.IdCursosHorarios equals cp.IdCursosHorarios into JoinedCP from cp in JoinedCP.DefaultIfEmpty() join p in dbCtx.Profesores on cp.IdProfesor equals p.IdProfesor into JoinedP from p in JoinedP.DefaultIfEmpty() join ce in dbCtx.CursosEstudiantes on ch.IdCursosHorarios equals ce.IdCursosHorarios into JoinedCE from ce in JoinedCE.DefaultIfEmpty() join e in dbCtx.Estudiantes on ce.IdEstudiante equals e.IdEstudiante into JoinedE from e in JoinedE.DefaultIfEmpty() orderby c.IdCurso select new CursosDtos.ReporteCursosList { IdCurso = (int?)c.IdCurso, NombreCurso = c.Descripcion, LimiteAusencias = cp.LimiteAusencias, IdProfesor = (int?)p.IdProfesor, NombreProfesor = p.Nombre, IdHorario = (int?)h.IdHorario, DescripcionHorario = h.Descripcion, IdEstudiante = (int?)e.IdEstudiante, NombreEstudiante = e.Nombre }; return(query); // comp[act version + lamda //from c in Cursos // from ch in CursosHorarios.Where(ch=>ch.IdCurso == c.IdCurso).DefaultIfEmpty() // from h in Horarios.Where(h=>h.IdHorario == ch.IdHorario).DefaultIfEmpty() // select new // { // c.IdCurso, NombreCurso = c.Descripcion, DescripcionHorario = h.Descripcion // } }