datatable to list 方法转换
2024-09-05 08:51:00
#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
最新文章
- oracle分页
- python读取excel并制表输出
- 无废话ExtJs 入门教程十一[下拉列表:Combobox]
- PSR : php编码规范
- SQL scripts
- Microsoft .NET Framework NGEN是神马东东?
- 几个经常用到的字符串的截取(java)
- wamp集成环境php多版本搭建(php5.5,php5.6,php7.0.6)
- iOS_SN_LLDB常用命令
- 缓冲区(buffer)与缓存(cache)
- Python3 tkinter基础 TK title 设置窗体的标题
- ASP.NET MVC5高级编程 之 HTML辅助方法
- 纯css进度条效果
- D. Mysterious Crime
- js的基本包装类型
- 配置java环境变量【搭建java开发环境】【Path追加字符串,CLASSPATH填入固定的字符串】
- react.js 教程之 Installation 安装
- M端错误提醒 -- pop 使用
- python基础学习2-easygui框架编程
- openstack系列文章(二)
热门文章
- vim编辑器使用习惯问题
- C指针——简单总结
- liteos学习文档liteos.github.io
- [BZOJ3172 ][Tjoi2013]单词(AC自动机)
- Spring使用mutipartFile上传文件报错【Failed to instantiate [org.springframework.web.multipart.MultipartFile]】
- 2 js的20/80关键知识
- Result Maps collection does not contain value for XXXXX
- CSS3 3D圆形设计教程
- 《Cracking the Coding Interview》——第13章:C和C++——题目7
- CS/BS架构的特点