/// <summary> /// 将DataTable中的所有数据转换成List>T<集合 /// </summary> /// <typeparam name="T">DataTable中每条数据可以转换的数据类型</typeparam> /// <param name="dataTable">包含有可以转换成数据类型T的数据集合</param> /// <returns></returns> public static IEnumerable <T> GetEntities <T>(DataTable dataTable) { if (dataTable == null) { throw new ArgumentNullException(nameof(dataTable)); } //如果T的类型满足以下条件:字符串、ValueType或者是Nullable<ValueType> if (typeof(T).IsSimpleType()) { return(GetSimpleEntities <T>(dataTable)); } else { //return dataTable.CreateDataReader().ToCollection<T>(); return(DapperEntityConverter.ToCollection <T>(dataTable.CreateDataReader())); //不能使用using (var reader = dataTable.CreateDataReader()) } }
/// <summary> /// 将DbDataReader中的所有数据转换成List>T<集合 /// </summary> /// <typeparam name="T">DbDataReader中每条数据可以转换的数据类型</typeparam> /// <param name="dataTable">包含有可以转换成数据类型T的DbDataReader实例</param> /// <returns></returns> public static IEnumerable <T> GetEntities <T>(DbDataReader reader) { if (reader == null) { throw new ArgumentNullException(nameof(reader)); } Type t = typeof(T); if (t == SmartCrudHelper.String || t.IsValueType) { return(GetSimpleEntities <T>(reader)); } else { //return reader.ToCollection<T>()?.ToList(); return(DapperEntityConverter.ToCollection <T>(reader)); } }