//数据列属性 public class DataColumnAttribute { string m_DataColumn = string.Empty; public DataColumnAttribute(string dataColumn) { m_DataColumn = dataColumn; } public string DataColumn { get { return m_DataColumn; } set { m_DataColumn = value; } } } //数据行转换成实体类 using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Reflection; namespace Quality { /// <summary> /// 数据行转换成实体的操作 /// </summary> public class LoadEntity { /// <summary> /// 把数据行封装到对应的实体类 /// </summary> /// <typeparam name="T">要封装的实体类型</typeparam> /// <param name="entity">待封装实体对象</param> /// <param name="idr">为实体对象提供数据的行</param> public static void LoadObject<T>(T entity, IDataReader idr) { System.Type newEntityType = entity.GetType(); foreach (PropertyInfo property in newEntityType.GetProperties()) { DataColumnAttribute[] dataColumnattribueList = (DataColumnAttribute[])property.GetCustomAttributes(typeof(DataColumnAttribute), false); if (dataColumnattribueList.Length > 0) { DataColumnAttribute dataColumnAttribute = dataColumnattribueList[0]; if (idr[dataColumnAttribute.DataColumn] != DBNull.Value) { property.SetValue(entity, idr[dataColumnAttribute.DataColumn], null); } else { property.SetValue(entity, null, null); } } } } } }