#region 实体转换

        /// <summary>
/// add extension method for datable
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static IList<TEntity> ToList<TEntity>(this DataTable dt) where TEntity : class ,new() {
return ConvertToModel<TEntity>(dt);
}
public static IList<TEntity> ConvertToModel<TEntity>(DataTable dt) where TEntity : class ,new() {
// 定义集合
IList<TEntity> ts = new List<TEntity>(); // 获得此模型的类型
Type type = typeof(T);
string tempName = ""; foreach (DataRow dr in dt.Rows) {
TEntity t = new TEntity();
// 获得此模型的公共属性
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;
} #endregion

最新文章

  1. oracle分页
  2. python读取excel并制表输出
  3. 无废话ExtJs 入门教程十一[下拉列表:Combobox]
  4. PSR : php编码规范
  5. SQL scripts
  6. Microsoft .NET Framework NGEN是神马东东?
  7. 几个经常用到的字符串的截取(java)
  8. wamp集成环境php多版本搭建(php5.5,php5.6,php7.0.6)
  9. iOS_SN_LLDB常用命令
  10. 缓冲区(buffer)与缓存(cache)
  11. Python3 tkinter基础 TK title 设置窗体的标题
  12. ASP.NET MVC5高级编程 之 HTML辅助方法
  13. 纯css进度条效果
  14. D. Mysterious Crime
  15. js的基本包装类型
  16. 配置java环境变量【搭建java开发环境】【Path追加字符串,CLASSPATH填入固定的字符串】
  17. react.js 教程之 Installation 安装
  18. M端错误提醒 -- pop 使用
  19. python基础学习2-easygui框架编程
  20. openstack系列文章(二)

热门文章

  1. vim编辑器使用习惯问题
  2. C指针——简单总结
  3. liteos学习文档liteos.github.io
  4. [BZOJ3172 ][Tjoi2013]单词(AC自动机)
  5. Spring使用mutipartFile上传文件报错【Failed to instantiate [org.springframework.web.multipart.MultipartFile]】
  6. 2 js的20/80关键知识
  7. Result Maps collection does not contain value for XXXXX
  8. CSS3 3D圆形设计教程
  9. 《Cracking the Coding Interview》——第13章:C和C++——题目7
  10. CS/BS架构的特点