Using C# generics and factory classes to map IDataReader to POCO?
Most of it looks good.  That is until I get to your catch statement:

catch (Exception)
{
    throw new Exception("Error creating Code objects from reader.");
}


really does not explain why you are having.  I would suggest either creating your own exception i.e. InvalidCodeDataException, or throwing an ApplicationException.  Either of these should take the original exception as an inner exception:

catch (Exception ex)
{
    throw new InvalidCodeDataException("Error creating Code objects from reader.", ex);
}


This way, you do not lose what cause the original exception.

Two suggestions:


don't use the this. statement, I find it overly clutters code up if
you are using standard naming conventions, which you are.
Use the object initializer format when creating objects:

return new Code
    {
         Type = (reader["CODE_TYPE"] as string) ?? String.Empty,
         Description = (reader["DESCRIPTION"] as string) ?? String.Empty,
         Value = (reader["CODE"] as string) ?? String.Empty
    }