赞
踩
将数据库查询出来的信息进行自动映射到实体中
转换代码:
public class DataTableHelper<T> where T : class { /// <summary> /// 用DataTable转换实体类 /// </summary> public static List<T> DataTableConvertToModel(DataTable dt) { if (dt == null || dt.Rows.Count == 0) { return null; } List<T> modelList = new List<T>(); foreach (DataRow dr in dt.Rows) { T model = (T)Activator.CreateInstance(typeof(T)); for (int i = 0; i < dr.Table.Columns.Count; i++) { PropertyInfo propertyInfo = model.GetType().GetProperty(dr.Table.Columns[i].ColumnName); if (propertyInfo != null && dr[i] != DBNull.Value) propertyInfo.SetValue(model, Convert.ChangeType(dr[i], propertyInfo.PropertyType), null); } modelList.Add(model); } return modelList; } }
使用:
// 表的映射
// 返回的是一个list集合 这里只有一条数据 就取第一个
TaskDTO taskDTO = DataTableHelper<TaskDTO>.DataTableConvertToModel(taskTable)[0];
TaskDTO 类的定义需要和数据库中的字段类型一致
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。