码迷,mamicode.com
首页 > 其他好文 > 详细

DataTable转换为Entity(反射&&泛型)

时间:2017-11-27 18:49:55      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:default   泛型   void   efi   def   bin   new t   bind   lis   

public static IEnumerable<T> Parse<T>(IEnumerable<DataRow> rows) where T : class, new()
{
    if (rows == null || Enumerable.FirstOrDefault<DataRow>(rows) == null)
        return (IEnumerable<T>) new T[0];
    PropertyInfo[] properties = typeof (T).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty);
    List<T> list = new List<T>();
    foreach (DataRow row in rows)
    {
        T instance = Activator.CreateInstance<T>();
        DbHelper.Parse((object) instance, (IEnumerable<PropertyInfo>) properties, row);
        list.Add(instance);
    }
    return (IEnumerable<T>) list;
}


private static void Parse(object obj, IEnumerable<PropertyInfo> properties, DataRow row)
{
    foreach (PropertyInfo propertyInfo in properties)
    {
        if (DataRowExtension.HasValue(row, propertyInfo.Name))
        {
            try
            {
                propertyInfo.SetValue(obj, DbHelper.ConvertType(CultureInfo.CurrentCulture, row[propertyInfo.Name], propertyInfo.PropertyType), (object[]) null);
            }
        }
        catch{ }
    }
}

DataTable转换为Entity(反射&&泛型)

标签:default   泛型   void   efi   def   bin   new t   bind   lis   

原文地址:http://www.cnblogs.com/Lulus/p/7905328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!