/// <summary>
/// 将IDataReader转换为 集合
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="reader"></param>
/// <returns></returns>
public static List<T> IDataReaderToList<T>(IDataReader reader)
{
using (reader)
{
List<string> field = new List<string>(reader.FieldCount);
for (int i = 0; i < reader.FieldCount; i++)
{
field.Add(reader.GetName(i).ToLower());
}
List<T> list = new List<T>();
while (reader.Read())
{
T model = Activator.CreateInstance<T>();
foreach (PropertyInfo property in model.GetType().GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance))
{
if (field.Contains(property.Name.ToLower()))
{
if (!IsNullOrDBNull(reader[property.Name]))
{
property.SetValue(model, HackType(reader[property.Name], property.PropertyType), null);
}
}
}
list.Add(model);
}
reader.Close();
reader.Dispose();
return list;
}
}
ReaderToList<T>
最新推荐文章于 2023-02-13 18:30:53 发布