/// <summary> /// 将DataTable转为List /// </summary> /// <typeparam name="T">实体类(必须有默认构造参数)</typeparam> /// <param name="dt">DataTable</param> /// <returns></returns> public static List <T> ToList <T>(DataTable dt) where T : new() { List <T> list = new List <T>(); if (dt == null || dt.Rows.Count == 0) { return(list); } foreach (DataRow dr in dt.Rows) { T t = new T(); foreach (PropertyInfo prop in typeof(T).GetProperties()) { if (dr.Table.Columns.Contains(prop.Name)) { if (dr[prop.Name] != DBNull.Value) { EmitSetter <T>(prop.Name)(t, dr[prop.Name]); } } } list.Add(t); } return(list); }
/// <summary> /// 将IDataReader转换为实体 /// </summary> /// <typeparam name="T">实体类(必须有默认构造参数)</typeparam> /// <param name="dr">IDataReader</param> /// <returns></returns> public static T ToEntity <T>(IDataReader dr) where T : new() { T t = default(T); if (dr.Read()) { t = new T(); foreach (PropertyInfo prop in typeof(T).GetProperties()) { if (dr[prop.Name] != DBNull.Value) { EmitSetter <T>(prop.Name)(t, dr[prop.Name]); } } } return(t); }
/// <summary> /// 将IDataReader转为实体 /// </summary> /// <typeparam name="T">实体类(必须有默认构造参数)</typeparam> /// <param name="dr">IDataReader</param> /// <returns></returns> public static List <T> ToList <T>(IDataReader dr) where T : new() { List <T> list = new List <T>(); while (dr.Read()) { T t = new T(); foreach (PropertyInfo prop in typeof(T).GetProperties()) { if (dr[prop.Name] != DBNull.Value) { EmitSetter <T>(prop.Name)(t, dr[prop.Name]); } } list.Add(t); } return(list); }
/// <summary> /// 将DataRow转为T /// </summary> /// <typeparam name="T">实体类(必须有默认构造参数)</typeparam> /// <param name="dr">DataRow</param> /// <returns></returns> public static T ToEntity <T>(DataRow dr) where T : new() { if (dr == null) { return(default(T)); } T t = new T(); foreach (PropertyInfo prop in typeof(T).GetProperties()) { if (dr.Table.Columns.Contains(prop.Name)) { if (dr[prop.Name] != DBNull.Value) { EmitSetter <T>(prop.Name)(t, dr[prop.Name]); } } } return(t); }