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