static void RunExample()
        {
            using (var context = new EFRecipesEntities())
            {
                Stopwatch watch = new Stopwatch();
                watch.Start();
                for (int i = 0; i < 5000; i++)
                {
                    var account = context.CreateObject <Account>();
                    account.Name    = "Test" + i.ToString();
                    account.Balance = 10M;
                    account.Payments.Add(new Payment {
                        PaidTo = "Test" + (i + 1).ToString(), Paid = 5M
                    });
                    context.Accounts.AddObject(account);
                }
                context.SaveChanges();
                watch.Stop();
                Console.WriteLine("Time to insert: {0} seconds", watch.Elapsed.TotalSeconds.ToString());
            }

            using (var context = new EFRecipesEntities())
            {
                Stopwatch watch = new Stopwatch();
                watch.Start();
                var accounts = context.Accounts.Include("Payments").ToList();
                watch.Stop();
                Console.WriteLine("Time to read: {0} seconds", watch.Elapsed.TotalSeconds.ToString());

                watch.Restart();
                foreach (var account in accounts)
                {
                    account.Balance += 10M;
                    account.Payments.First().Paid += 1M;
                }
                context.SaveChanges();
                watch.Stop();
                Console.WriteLine("Time to update: {0} seconds", watch.Elapsed.TotalSeconds.ToString());
            }

            Console.WriteLine("Press <enter> to continue...");
            Console.ReadLine();
        }