using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcApplication2.Models; using DataAccess; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Reflection; namespace MvcApplication2.Controllers { /// <summary> /// 将datatable装入指定类型的集合 /// </summary> /// <typeparam name="T"></typeparam> public class GenericList<T>:List<T> { public GenericList(DataTable dt, string f) { System.Type tt = System.Type.GetType(f);//获取指定名称的类型 object ff = Activator.CreateInstance(tt, null);//创建指定类型实例 PropertyInfo[] fields = ff.GetType().GetProperties();//获取指定对象的所有公共属性 foreach (DataRow dr in dt.Rows) { object obj = Activator.CreateInstance(tt, null); foreach (DataColumn dc in dt.Columns) { foreach (PropertyInfo t in fields) { if (dc.ColumnName == t.Name) { t.SetValue(obj, dr[dc.ColumnName], null);//给对象赋值 continue; } }
} this.Add((T)obj);//将对象填充到list集合 } } }
} //////////////////////实体类
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel; using System.ComponentModel.DataAnnotations; namespace MvcApplication2.Models { [MetadataType(typeof(EmployeeData))] public partial class Employee {
public class EmployeeData { [DisplayName("用户ID")] public int ID { set; get; }