public IEnumerator <T> GetEnumerator()
        {
            var e = enumerator;

            if (e == null)
            {
                throw new InvalidOperationException(
                          "DbDataReader cannot be enumerated more than once.");
            }
            enumerator = null;
            return(e);
        }
 public ProjectionReader(DbDataReader reader, Func <ProjectionRow, T> projector)
 {
     enumerator = new SelectDbEnumerator <T>(reader, projector);
 }