I'm in the process of doing some mapping of POCOs via IDataReader. I'd love to hear thoughts on the approach and if they are any good ways to improve what I have done. public class Code{    public int Id { get; set; }    public string Type { get; set; }    public string Value { get; set; }    public string Description { get; set; }}public class CodeRepository : GenericRepository{    public CodeRepository(IDbConnection connection) : base(connection) { }    public IEnumerable<Code> GetCodesForDemographics()    {        var sql = @            Select                 CODE_TYPE,                 CODE,                 DESCRIPTION            From                 Codes            Where                 CODE_TYPE In ('language', 'lang_service', 'transfer', 'admit_type', 'Value',                                 'admit_src', 'state', 'county', 'ethnic', 'race',                                 'exempt_unit_code', 'alt_care_type_code');        using (var manager = new DbCommandManager(this.Connection, sql))        {            using (var reader = manager.GetReader())                return DbAutoMapper.MapReaderToList<Code, CodeFactory>(reader);        }    }public class CodeFactory : IFactory<Code>{    public Code CreateTFromReader(IDataReader reader)    {        try        {            var code = new Code();            code.Type = (reader[CODE_TYPE] as string) ?? String.Empty;            code.Description = (reader[DESCRIPTION] as string) ?? String.Empty;            code.Value = (reader[CODE] as string) ?? String.Empty;            return code;        }        catch (Exception)        {            throw new Exception(Error creating Code objects from reader.);        }    }}
Using C# generics and factory classes to map IDataReader to POCO?
c#;asp.net