using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Data; 
 | 
using System.Linq; 
 | 
using System.Reflection; 
 | 
using System.Web; 
 | 
  
 | 
namespace WebAPI.Models 
 | 
{ 
 | 
    public class ModelConvertHelper<T> where T : new() 
 | 
    { 
 | 
        public static List<T> ConvertToModel(DataTable dt) 
 | 
        { 
 | 
            // 定义集合     
 | 
            List<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)) 
 | 
                    { 
 | 
                        // 判断此属性是否有Setter       
 | 
                        if (!pi.CanWrite) continue; 
 | 
  
 | 
                        object value = dr[tempName]; 
 | 
                        if (value != DBNull.Value) 
 | 
                            pi.SetValue(t, value, null); 
 | 
                    } 
 | 
                } 
 | 
                ts.Add(t); 
 | 
            } 
 | 
            return ts; 
 | 
        } 
 | 
    }     
 | 
} 
 |