private static Type[] GetTypesFromReader(System.Data.IDataRecord rdr)
        {
            Type[] types = new Type[rdr.FieldCount];
            for (int i = 0; i < rdr.FieldCount; i++)
            {
                types[i] = rdr.GetFieldType(i);
                var nnType = Nullable.GetUnderlyingType(types[i]);
                if (nnType != null)
                {
                    types[i] = nnType;
                }
            }

            return(types);
        }