コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }