private static void Main(string[] args)
        {
            var context = new PhonebookEntities();

            foreach (var contact in context.Contacts
                .Include(c => c.Emails)
                .Include(c => c.Phones))
            {
                Console.WriteLine("Name: " + contact.Name);

                if (contact.Position != null)
                {
                    Console.WriteLine(" Position: " + contact.Position);
                }
                if (contact.Company != null)
                {
                    Console.WriteLine(" Company: " + contact.Company);
                }
                if (contact.Emails.Count > 0)
                {
                    Console.WriteLine(" Emails: " + string.Join(", ", contact.Emails.Select(e => e.EmailAdress)));
                }
                if (contact.Phones.Count > 0)
                {
                    Console.WriteLine(" Phones: " + string.Join(", ", contact.Phones.Select(p => p.Number)));
                }
                if (contact.Url != null)
                {
                    Console.WriteLine(" Url: " + contact.Url);
                }
                if (contact.Notes != null)
                {
                    Console.WriteLine(" Notes: " + contact.Notes);
                }
            }
        }
        private static void ImportContact(JToken contact)
        {
            using (var context = new PhonebookEntities())
            {
                var newContact = new Contact();

                if (contact["name"] == null)
                {
                    throw new ArgumentException("Name is required.");
                }

                newContact.Name = contact["name"].Value<string>();

                if (contact["site"] != null)
                {
                    newContact.Url = contact["site"].Value<string>();
                }
                if (contact["position"] != null)
                {
                    newContact.Position = contact["position"].Value<string>();
                }
                if (contact["company"] != null)
                {
                    newContact.Company = contact["company"].Value<string>();
                }
                if (contact["notes"] != null)
                {
                    newContact.Notes = contact["notes"].Value<string>();
                }

                if (contact["emails"] != null)
                {
                    var emails = contact["emails"];

                    foreach (var email in emails)
                    {
                        var newEmail = new Email
                        {
                            EmailAdress = email.Value<string>()
                        };

                        newContact.Emails.Add(newEmail);
                    }
                }

                if (contact["phones"] != null)
                {
                    var phones = contact["phones"];

                    foreach (var phone in phones)
                    {
                        var newPhone = new Phone
                        {
                            Number = phone.Value<string>()
                        };

                        newContact.Phones.Add(newPhone);
                    }
                }

                context.Contacts.Add(newContact);
                context.SaveChanges();
            }
        }