c#中DataTable转实体对象Model
每当从数据库中读取到DataTabel时,使用此方法就可以将datetable转为指定的model实体public static IEnumerable<T> DataTableToModels<T>(this DataTable dt) where T : class, new()
{
//判断datatable是否有值
if (dt.Columns.Count < 1 || dt.Rows.Count < 1) yield return default(T);
//获取实体类中所有公开的属性,并且筛选出在datatable中存在的列
var propertyInfos = from propertyInfo in typeof(T).GetProperties()
where dt.Columns.Contains(propertyInfo.Name)
select propertyInfo;
//循环设置属性
foreach (DataRow dr in dt.Rows)//遍历dt中所有行
{
var result = new T();
foreach (var p in propertyInfos)//遍历所有属性
{
try
{
p.SetValue(result, dr, null);
}
catch (System.Exception)
{
throw;
}
}
yield return result;
}
}
楠哥,我也写过dt转换成实体的,但是没有用到迭代。。。{:3_62:}加上迭代性能会不会更好勒 剑弑 发表于 2016-7-19 09:41
楠哥,我也写过dt转换成实体的,但是没有用到迭代。。。加上迭代性能会不会更好勒
更得劲 ibcadmin 发表于 2016-7-19 12:07
更得劲
{:3_62:}
页:
[1]