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); }
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)); } }