public bool Read() { if (rdr == null) { rdr = Dp.ExecuteReader(SqlSelect, Parameters); BuildSetter(); } if (rdr.Read()) { if (ReadOnNewEntity) { _Entity = new TEntity(); } for (int i = 0; i < Setter.Length; i++) { if (Setter[i] != null) { object obj = rdr.GetValue(i); if (obj == null || obj == DBNull.Value) { obj = GetDefaultValue(rdr.GetFieldType(i)); } if (EnumType[i] == null) { Setter[i](_Entity, obj); } else { Setter[i](_Entity, EnumDef.GetEnumValue( EnumType[i], obj)); } } } return(true); } return(false); }