/// <summary> /// 将 DataReader转换成实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="reader"></param> /// <returns></returns> public static T ToEntity <T>(this IDataReader reader) where T : new() { T t = new T(); LoadDataReader <T> Load = null; //用于 暂时存放 字段 Dictionary <string, PropertyInfo> FieldNames = new Dictionary <string, PropertyInfo>(); var properties = typeof(T).GetProperties(); FieldNames = GetPropertyInfo(reader, properties); Load = (LoadDataReader <T>)DataReaderCreateEntity <T>(dataReadAssembly, FieldNames).CreateDelegate(typeof(LoadDataReader <T>)); while (reader.Read()) { t = Load(reader); break; } return(t); }
/// <summary> /// 将 DataReader转换成指定 List /// </summary> /// <typeparam name="T"></typeparam> /// <param name="reader"></param> /// <returns></returns> public static List <T> ToEntityList <T>(this IDataReader reader) { List <T> list = new List <T>(); LoadDataReader <T> Load = null; //用于 暂时存放 字段 Dictionary <string, PropertyInfo> FieldNames = new Dictionary <string, PropertyInfo>(); var properties = typeof(T).GetProperties(); FieldNames = GetPropertyInfo(reader, properties); Load = (LoadDataReader <T>)DataReaderCreateEntity <T>(dataReadAssembly, FieldNames).CreateDelegate(typeof(LoadDataReader <T>)); while (reader.Read()) { list.Add(Load(reader)); } return(list); }