Пример #1
0
 private static void LoadData()
 {
     using (var context = new Recipe6())
     {
         var a1 = new Associate {
             Name = "Robert Stevens", City = "Raytown"
         };
         a1.Paychecks.Add(new Paycheck {
             PayDate = DateTime.Parse("3/1/10"), Gross = 1802.83M
         });
         a1.Paychecks.Add(new Paycheck {
             PayDate = DateTime.Parse("3/15/10"), Gross = 1924.91M
         });
         var a2 = new Associate {
             Name = "Karen Thorp", City = "Gladstone"
         };
         a2.Paychecks.Add(new Paycheck {
             PayDate = DateTime.Parse("3/1/10"), Gross = 2102.34M
         });
         a2.Paychecks.Add(new Paycheck {
             PayDate = DateTime.Parse("3/15/10"), Gross = 1992.18M
         });
         context.Associates.Add(a1);
         context.Associates.Add(a2);
         context.SaveChanges();
     }
 }
Пример #2
0
        private static void RunUncompiledQuery()
        {
            using (var context = new Recipe6())
            {
                // Explicitly disable query plan caching
                var objectContext    = ((IObjectContextAdapter)context).ObjectContext;
                var associateNoCache = objectContext.CreateObjectSet <Associate>();
                associateNoCache.EnablePlanCaching = false;

                var  watch      = new Stopwatch();
                long totalTicks = 0;

                // warm things up
                associateNoCache.Include(x => x.Paychecks).Where(a => a.Name.StartsWith("Karen")).ToList();

                // query gets compiled each time
                for (var i = 0; i < 10; i++)
                {
                    watch.Restart();
                    associateNoCache.Include(x => x.Paychecks).Where(a => a.Name.StartsWith("Karen")).ToList();
                    watch.Stop();
                    totalTicks += watch.ElapsedTicks;
                    Console.WriteLine("Not Compiled #{0}: {1}", i, watch.ElapsedTicks);
                }
                Console.WriteLine("Average ticks without compiling: {0}", (totalTicks / 10));
                Console.WriteLine("");
            }
        }
Пример #3
0
 private static void Cleanup()
 {
     using (var context = new Recipe6())
     {
         context.Database.ExecuteSqlCommand("delete from chapter13.paycheck");
         context.Database.ExecuteSqlCommand("delete from chapter13.associate");
     }
 }
Пример #4
0
        private static void RunCompiledQuery()
        {
            using (var context = new Recipe6())
            {
                var  watch      = new Stopwatch();
                long totalTicks = 0;

                // warm things up
                context.Associates.Include(x => x.Paychecks).Where(a => a.Name.StartsWith("Karen")).ToList();

                totalTicks = 0;
                for (var i = 0; i < 10; i++)
                {
                    watch.Restart();
                    context.Associates.Include(x => x.Paychecks).Where(a => a.Name.StartsWith("Karen")).ToList();
                    watch.Stop();
                    totalTicks += watch.ElapsedTicks;
                    Console.WriteLine("Compiled #{0}: {1}", i, watch.ElapsedTicks);
                }
                Console.WriteLine("Average ticks with compiling: {0}", (totalTicks / 10));
            }
        }