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