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(); } }