示例#1
0
 IDbCommand GetCommand(string sql, object parameters = null)
 {
     _dbCommand.CommandText = sql;
     if (parameters != null)
     {
         if (_dbCommand.CommandType == CommandType.StoredProcedure)
         {
             foreach (string propName in ReflectionUtilities.GetProperties(parameters))
             {
                 _dbCommand.Parameters.Add(GetParam(_dbCommand, $"@{_namingConvention.ConvertToDbName(propName)}", ReflectionUtilities.GetPropertyValue(propName, parameters)));
             }
         }
         else
         {
             var sqlParams = GeSqlParams(sql);
             foreach (var sqlParam in sqlParams)
             {
                 var paramValue = ReflectionUtilities.GetPropertyValue(CleanParameter(sqlParam), parameters) ?? DBNull.Value;
                 var parameter  = GetParam(_dbCommand, sqlParam, paramValue);
                 _dbCommand.Parameters.Add(parameter);
             }
         }
     }
     return(_dbCommand);
 }
示例#2
0
        public IEnumerable <T> FindAll(Expression <Func <T, bool> > expression)
        {
            var     propertyName = ReflectionUtilities.GetPropertyNameFromExpression(expression);
            var     columnName   = NamingConvention.ConvertToDbName(propertyName);
            dynamic obj          = new ExpandoObject();
            var     paramObj     = (IDictionary <string, object>)obj;

            paramObj[columnName] = ReflectionUtilities.GetValueFromExpression(expression);
            using (var cmd = _commandFactory.Create(SqlGenerator.GetSelectByColumnNameQuery(columnName), obj))
            {
                return(Mapper.GetObjects <T>(cmd));
            }
        }