Example #1
0
        /// <summary>
        /// Emit转换DataReader为对象列表
        /// </summary>
        /// <returns></returns>
        public static IEnumerable <T> ReaderToEnumerable <T>(IDataReader reader)
        {
            var info = new CacheInfo
            {
                Deserializer = GetDeserializer(typeof(T), reader, 0, -1, false)
            };

            while (reader.Read())
            {
                dynamic next = info.Deserializer(reader);
                yield return((T)next);
            }
        }
Example #2
0
        /// <summary>
        /// Emit转换DataReader为单个对象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="reader"></param>
        /// <returns></returns>
        public static T ReaderToModel <T>(IDataReader reader)
        {
            var info = new CacheInfo
            {
                Deserializer = GetDeserializer(typeof(T), reader, 0, -1, false)
            };

            if (reader.Read())
            {
                dynamic next = info.Deserializer(reader);
                return((T)next);
            }
            else
            {
                return(default(T));
            }
        }