星空网 > 软件开发 > ASP.net

DataTable转换为Model实体对象

  记得在学校的时候,接触得最多的就是SqlHelper,每次在读取的时候不管是DataTable还是DataReader转换为实体对象的时候是最恼火的,因为要写很多代码,而且没有什么意义。后面接触到了反射,于是查了下资料也写了个已经烂大街的DataTable转换为Model实体对象

 

 1 public static IEnumerable<T> DataTableToModels<T>(this DataTable dt) where T : class, new() 2     { 3       //判断datatable是否有值 4       if (dt.Columns.Count < 1 || dt.Rows.Count < 1) yield return default(T); 5       //获取实体类中所有公开的属性,并且筛选出在datatable中存在的列 6       var propertyInfos = from propertyInfo in typeof(T).GetProperties() 7                 where dt.Columns.Contains(propertyInfo.Name) 8                 select propertyInfo; 9       //循环设置属性10       foreach (DataRow dr in dt.Rows)//遍历dt中所有行11       {12         var result = new T();13         foreach (var p in propertyInfos)//遍历所有属性14         {15           try16           {17             p.SetValue(result, dr[p.Name], null);18           }19           catch (System.Exception)20           {21 22             throw;23           }24         }25         yield return result;26       }27 28     }

 

需要注意的是DataTable.Columns.Contains和赋值给定Name时是不区分大小写的!




原标题:DataTable转换为Model实体对象

关键词:DataTable

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流