예제 #1
0
        /// <summary>Ejecuta el query proveido y devuelve la primer tabla del resultado convirtiendo cada registro en el tipo solicitado</summary>
        public List <T> ExecList <T>(IQryable query) where T : new()
        {
            DataTable dttRes   = ExecTable(query);
            List <T>  entities = new List <T>();
            IEnumerable <PropertyInfo> properties = (typeof(T)).GetProperties();

            foreach (DataRow row in dttRes.Rows)
            {
                T entity = new T();
                foreach (PropertyInfo prop in properties)
                {
                    if (dttRes.Columns.Contains(prop.Name))
                    {
                        if (row[prop.Name] is DBNull)
                        {
                            prop.SetValue(entity, null, null);
                        }
                        else
                        {
                            prop.SetValue(entity, row[prop.Name], null);
                        }
                    }
                }
                entities.Add(entity);
            }
            return(entities);
        }
예제 #2
0
        /// <summary>Ejecuta el query proveido y devuelve un dataset con los resultados del mismo</summary>
        public DataSet Exec(IQryable query, bool keepAlive)
        {
            if (!openCon)
            {
                sqlCon = new SqlConnection(strCon);
                sqlAda = new SqlDataAdapter();
            }
            DataSet dtsRes = new DataSet();

            try {
                if (!openCon)
                {
                    sqlCon.Open();
                }
                sqlCmd                = sqlCon.CreateCommand();
                sqlCmd.CommandText    = query.ToString();
                sqlCmd.CommandTimeout = 0;
                sqlAda.SelectCommand  = sqlCmd;
                sqlAda.Fill(dtsRes);
                openCon = keepAlive;
                return(dtsRes);
            }
            finally {
                if (!keepAlive)
                {
                    Dispose();
                    openCon = false;
                }
            }
        }
예제 #3
0
        /// <summary>Ejecuta el query proveido y devuelve el valor de la primera celda del primer renglon de la primer tabla del resultado</summary>
        public object ExecScalar(IQryable query)
        {
            DataSet dtsRes = default(DataSet);

            dtsRes = Exec(query);
            if (dtsRes != null && dtsRes.Tables.Count > 0 && dtsRes.Tables[0].Rows.Count > 0 && dtsRes.Tables[0].Columns.Count > 0)
            {
                return(dtsRes.Tables[0].Rows[0][0]);
            }
            return(null);
        }
예제 #4
0
        /// <summary>Ejecuta el query proveido y devuelve el primer renglon de la primer tabla del resultado</summary>
        public DataRow ExecRow(IQryable query)
        {
            DataSet dtsRes = default(DataSet);

            dtsRes = Exec(query);
            if (dtsRes != null && dtsRes.Tables.Count > 0 && dtsRes.Tables[0].Rows.Count > 0)
            {
                return(dtsRes.Tables[0].Rows[0]);
            }
            return(null);
        }
예제 #5
0
 /// <summary>Ejecuta el query proveido y devuelve un dataset con los resultados del mismo</summary>
 public DataSet Exec(IQryable query)
 {
     return(Exec(query, false));
 }
예제 #6
0
 /// <summary>Ejecuta el query proveido y lo convierte al tipo solicitado</summary>
 public T ExecEntity <T>(IQryable query) where T : new()
 {
     return(ExecList <T>(query).FirstOrDefault());
 }
예제 #7
0
 /// <summary>Add a boolean condition to the batch</summary>
 public void IF(Expression condition, IQryable truePart)
 {
     IF(condition, truePart, null);
 }
예제 #8
0
        /// <summary>Add a boolean condition with false part to the batch</summary>
        public void IF(Expression condition, IQryable truePart, IQryable falsePart)
        {
            BooleanCondition bol = new BooleanCondition(condition, truePart, falsePart);

            lstQuery.Add(bol);
        }
예제 #9
0
 public BooleanCondition(Expression condition, IQryable truePart, IQryable falsePart)
 {
     Condition = condition;
     TruePart  = truePart;
     FalsePart = falsePart;
 }