Пример #1
0
        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);
        }
Пример #2
0
        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();
        }
Пример #3
0
        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);
        }