public static void EjecutarComandoSQL(this DbContext pContexto, ConsultaEntidad pComandoEntidad)
        {
            Type tipoEntidad = Type.GetType("Sgb_Infrastructure.DAO." + pComandoEntidad.NombreEntidad);


            var infoMetodo         = typeof(EntityFrameworkCoreExtensions).GetMethod("EjecutarComandoSQLPuro", BindingFlags.Static | BindingFlags.NonPublic);
            var infoMetodoGenerico = infoMetodo.MakeGenericMethod(tipoEntidad);

            infoMetodoGenerico.Invoke(null, new object[] { pContexto, pComandoEntidad });
        }
        private static void EjecutarComandoSQLPuro <TipoEntidad>(this DbContext pContexto, ConsultaEntidad pComandoEntidad) where TipoEntidad : class
        {
            string sqlFinal = null;

            sqlFinal = pComandoEntidad.Sql;

            pContexto.Set <TipoEntidad>().FromSqlRaw(sqlFinal, pComandoEntidad.Parametros);
        }
        private static IEnumerable <object> EjecutarConsultaSQLPura <TipoEntidad>(this DbContext pContexto, ConsultaEntidad pConsultaEntidad) where TipoEntidad : class
        {
            string sqlFinal = null;

            if (!pConsultaEntidad.SqlCompleta)
            {
                sqlFinal = "SELECT * FROM " + pContexto.ObtenerNombreEntidadFisica(typeof(TipoEntidad)) + " " + pConsultaEntidad.Sql;
            }
            else
            {
                sqlFinal = pConsultaEntidad.Sql;
            }

            var resultados = pContexto.Set <TipoEntidad>().FromSqlRaw(sqlFinal, pConsultaEntidad.Parametros)
                             .Select(e => (object)e)
                             .ToList();

            return(resultados);
        }
        public static IEnumerable <object> EjecutarConsultaSQL(this DbContext pContexto, ConsultaEntidad pConsultaEntidad)
        {
            Type tipoEntidad = Type.GetType("Sgb_Infrastructure.DAO." + pConsultaEntidad.NombreEntidad);


            var infoMetodo         = typeof(EntityFrameworkCoreExtensions).GetMethod("EjecutarConsultaSQLPura", BindingFlags.Static | BindingFlags.NonPublic);
            var infoMetodoGenerico = infoMetodo.MakeGenericMethod(tipoEntidad);
            var resultados         = infoMetodoGenerico.Invoke(null, new object[] { pContexto, pConsultaEntidad });

            return((List <Object>)resultados);
        }