public PlanMEDTO Get(string proyectoId, int indicadorId)
 {
     try
     {
         return((from p in _context.Proyecto
                 join pme in _context.PlanMonitoreoEvaluacion
                 on p equals pme.Proyecto
                 join i in _context.Indicador
                 on pme.Indicador equals i
                 join fd in _context.FuenteDato
                 on pme.FuenteDato equals fd into Fuente
                 from PlanFuente in Fuente.DefaultIfEmpty()
                 join fm in _context.FrecuenciaMedicion
                 on pme.FrecuenciaMedicion equals fm into Frecuencia
                 from PlanFrecuencia in Frecuencia.DefaultIfEmpty()
                 join ni in _context.NivelImpacto
                 on pme.NivelImpacto equals ni into Nivel
                 from PlanNivel in Nivel.DefaultIfEmpty()
                 where p.CodigoProyecto == proyectoId && i.CodigoIndicador == indicadorId
                 select new PlanMEDTO()
         {
             ProyectoId = p.CodigoProyecto,
             IndicadorId = i.CodigoIndicador,
             NombreProyecto = p.NombreProyecto,
             NombreIndicador = i.NombreIndicador,
             LineaBase = pme.ValorLineaBase,
             Metodologia = pme.MetodologiaRecoleccion,
             FuenteDato = new MapDTO()
             {
                 Id = PlanFuente == null ? 0 : PlanFuente.Id,
                 Nombre = PlanFuente == null ? string.Empty : PlanFuente.NombreFuente
             },
             FrecuenciaMedicion = new MapDTO()
             {
                 Id = PlanFrecuencia == null ? 0 : PlanFrecuencia.Id,
                 Nombre = PlanFrecuencia == null ? string.Empty : PlanFrecuencia.NombreFrecuencia
             },
             NivelImpacto = new MapDTO()
             {
                 Id = PlanNivel == null ? 0 : PlanNivel.Id,
                 Nombre = PlanNivel == null ? string.Empty : PlanNivel.NombreNivelImpacto
             },
             Desagregaciones = (
                 from pd in _context.PlanDesagregacion
                 join d in _context.Desagregacion
                 on pd.Desagregacion equals d
                 where pd.PlanMonitoreoEvaluacionProyectoCodigoProyecto == p.CodigoProyecto && pd.PlanMonitoreoEvaluacionIndicadorId == i.CodigoIndicador
                 select new MapDTO()
             {
                 Id = d.Id,
                 Nombre = d.TipoDesagregacion
             }).ToArray()
         }).Single());
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
         return(null);
     }
 }