private static void Cleanup(ContactsContext context)
        {
            var contactList = context.Contacts.ToList();
            foreach (var contact in contactList)
            {
                // delete emails
                var emails = contact.EmailAddresses.ToList();
                emails.ForEach(context.DeleteObject);

                // delete phone numbers
                var phoneNumbers = contact.PhoneNumbers.ToList();
                phoneNumbers.ForEach(context.DeleteObject);

                // delete address
                var addresses = contact.Addresses.ToList();
                addresses.ForEach(context.DeleteObject);

                // delete contact
                context.DeleteObject(contact);

            }
            context.SaveChanges();
        }
        private static void UpdateContacts(ContactsContext context)
        {
            var contacts = context.Contacts.ToList();
            foreach (var contact in contacts)
            {
                // we're going to swap all the first names with last names
                var firstName = contact.FirstName;
                var lastName = contact.LastName;

                contact.FirstName = lastName;
                contact.LastName = firstName;

                // we're now going to delete a phone number and email address
                if (contact.PhoneNumbers.Any())
                {
                    PhoneNumber phoneNumber = contact.PhoneNumbers.First();
                    context.DeleteObject(phoneNumber);
                }

                if (contact.EmailAddresses.Any())
                {
                    EmailAddress emailAddress = contact.EmailAddresses.First();
                    context.DeleteObject(emailAddress);
                }

                context.SaveChanges();
            }
        }