DataTable转换为Entity(反射&&泛型)

it2022-06-23  91

public static IEnumerable<T> Parse<T>(IEnumerable<DataRow> rows) where T : class, new() { if (rows == null || Enumerable.FirstOrDefault<DataRow>(rows) == null) return (IEnumerable<T>) new T[0]; PropertyInfo[] properties = typeof (T).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty); List<T> list = new List<T>(); foreach (DataRow row in rows) { T instance = Activator.CreateInstance<T>(); DbHelper.Parse((object) instance, (IEnumerable<PropertyInfo>) properties, row); list.Add(instance); } return (IEnumerable<T>) list; } private static void Parse(object obj, IEnumerable<PropertyInfo> properties, DataRow row) { foreach (PropertyInfo propertyInfo in properties) { if (DataRowExtension.HasValue(row, propertyInfo.Name)) { try { propertyInfo.SetValue(obj, DbHelper.ConvertType(CultureInfo.CurrentCulture, row[propertyInfo.Name], propertyInfo.PropertyType), (object[]) null); } } catch{ } } }

转载于:https://www.cnblogs.com/Lulus/p/7905328.html


最新回复(0)