 <p>Sorry for troubling those who went through the question, there was almost no problem at all. I was just too silly to miss it. I forgot the magic of Entity Framework. I implemented the add function in following way</p> <pre><code> public bool AddSpeaker(Entities.Speaker speaker, string[] selectedCertifications) { if (selectedCertifications != null) { SpeakerCertification speakerCertification = new SpeakerCertification(); speaker.Certifications = new List&lt;SpeakerCertification&gt;(); foreach (var certificate in selectedCertifications) { if (certificate.CompareTo("false")!=0) { var certificationToAdd = _ctx.Certifications.Find(int.Parse(certificate)); speakerCertification = new SpeakerCertification(); speakerCertification.CertificationId = certificationToAdd.Id; speaker.Certifications.Add(speakerCertification); } } } _ctx.Speakers.Add(speaker); _ctx.SaveChanges(); return true; } </code></pre>