public void InsertWitnessesForMarriage(Guid marriageId, IList<MarriageWitness> persons) { using (var context = new GeneralModelContainer()) { Marriage mToUpDate = context.Marriages.FirstOrDefault(m => m.Marriage_Id == marriageId); DeleteWitnessesForMarriage(marriageId); foreach (var dupePerson in persons.RemoveDuplicateReferences()) { _personDal.Delete(dupePerson.Person.PersonId); } foreach (var personDto in persons) { var person = context.Persons.FirstOrDefault(p => p.Person_id == personDto.Person.PersonId); if (person != null) context.MarriageMapWitness.Add(new MarriageMapWitness { Persons = person, Marriages = mToUpDate, WitnessNote = personDto.Description }); } context.SaveChanges(); } }