public static long GetEmployeesWithReflection(DataTable dt) { var stopWatch = new Stopwatch(); stopWatch.Start(); PropertyInfo[] properties = typeof(GetAllPersons_Result).GetProperties(); var list = new List <GetAllPersons_Result>(); foreach (DataRow row in dt.Rows) { var person = new GetAllPersons_Result(); foreach (var property in properties) { if (row[property.Name] != DBNull.Value) { property.SetValue(person, row[property.Name], null); } } list.Add(person); } stopWatch.Stop(); return(stopWatch.ElapsedTicks); }
public static long GetEmployeesWithAdo() { var stopWatch = new Stopwatch(); stopWatch.Start(); var dt = new DataTable(); var conn = new SqlConnection( @"Data Source = (local); Initial Catalog = AdventureWorks2012; Integrated Security = True;"); var adaptor = new SqlDataAdapter("GetAllPersons", conn); adaptor.Fill(dt); var accessor = TypeAccessor.Create(typeof(GetAllPersons_Result)); MemberSet members = accessor.GetMembers(); var list = new List <GetAllPersons_Result>(); foreach (DataRow row in dt.Rows) { var person = new GetAllPersons_Result(); foreach (var member in members) { if (row[member.Name] != DBNull.Value) { accessor[person, member.Name] = row[member.Name]; } } list.Add(person); } stopWatch.Stop(); //Console.WriteLine("Ado Net time taken:{0}",stopWatch.ElapsedMilliseconds); return(stopWatch.ElapsedTicks); //Console.Read(); }
public static long GetEmployeesWithFastMember(DataTable dt) { var stopWatch = new Stopwatch(); stopWatch.Start(); var accessor = TypeAccessor.Create(typeof(GetAllPersons_Result)); MemberSet members = accessor.GetMembers(); var list = new List <GetAllPersons_Result>(); foreach (DataRow row in dt.Rows) { var person = new GetAllPersons_Result(); foreach (var member in members) { if (row[member.Name] != DBNull.Value) { accessor[person, member.Name] = row[member.Name]; } } list.Add(person); } stopWatch.Stop(); return(stopWatch.ElapsedTicks); }