/// <summary>/// DataTable转List<Model>通用类【实体转换辅助类】/// </summary>public class ModelConvertHelper<T> where T : new(){public static IList<T> ConvertToModel(DataTable dt){// 定义集合IList<T> ts = new List<T>();// 获得此模型的类型Type type = typeof(T);string tempName = "";foreach (DataRow dr in dt.Rows){T t = new T();// 获得此模型的公共属性PRopertyInfo[] propertys = t.GetType().GetProperties();foreach (PropertyInfo pi in propertys){tempName = pi.Name; // 检查DataTable是否包含此列if (dt.Columns.Contains(tempName)){// 判断此属性是否有Setif (!pi.CanWrite) continue;object value = dr[tempName];if (value != DBNull.Value)pi.SetValue(t, value, null);}}ts.Add(t);}return ts;}}
// 把DataTable转换为IList<View_TableListModel> IList<View_TableListModel> vlistTable = ModelConvertHelper<View_TableListModel>.ConvertToModel(dtTable);
新闻热点
疑难解答