1 Star 0 Fork 0

LDMING/Z.ExtensionMethods

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
DataRow.ToEntity.cs 1.70 KB
一键复制 编辑 原始数据 按行查看 历史
Jonathan Magnan 提交于 2019-03-27 08:51 +08:00 . Update all copyright
// Description: C# Extension Methods | Enhance the .NET Framework and .NET Core with over 1000 extension methods.
// Website & Documentation: https://csharp-extension.com/
// Issues: https://github.com/zzzprojects/Z.ExtensionMethods/issues
// License (MIT): https://github.com/zzzprojects/Z.ExtensionMethods/blob/master/LICENSE
// More projects: https://zzzprojects.com/
// Copyright ZZZ Projects Inc. All rights reserved.
using System;
using System.Data;
using System.Reflection;
public static partial class Extensions
{
/// <summary>
/// A DataRow extension method that converts the @this to the entities.
/// </summary>
/// <typeparam name="T">Generic type parameter.</typeparam>
/// <param name="this">The @this to act on.</param>
/// <returns>@this as a T.</returns>
public static T ToEntity<T>(this DataRow @this) where T : new()
{
Type type = typeof (T);
PropertyInfo[] properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
FieldInfo[] fields = type.GetFields(BindingFlags.Public | BindingFlags.Instance);
var entity = new T();
foreach (PropertyInfo property in properties)
{
if (@this.Table.Columns.Contains(property.Name))
{
Type valueType = property.PropertyType;
property.SetValue(entity, @this[property.Name].To(valueType), null);
}
}
foreach (FieldInfo field in fields)
{
if (@this.Table.Columns.Contains(field.Name))
{
Type valueType = field.FieldType;
field.SetValue(entity, @this[field.Name].To(valueType));
}
}
return entity;
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/ldming/Z.ExtensionMethods.git
git@gitee.com:ldming/Z.ExtensionMethods.git
ldming
Z.ExtensionMethods
Z.ExtensionMethods
master

搜索帮助