private void ProcesarEspecialidades(PersonaEditModel editModel, Profesional personaProfesional) { var session = SessionFactory.GetCurrentSession(); //Especialidades a eliminar var especialidadesAEliminar = personaProfesional.Especialidades.Where( x => !editModel.Profesional.EspecialidadesSeleccionadas.Contains(x.Id)).ToList(); foreach (var especialidadAEliminar in especialidadesAEliminar) { personaProfesional.QuitarEspecialidad(especialidadAEliminar); } //Especialidades a agregar var especialidadesAAgregar = editModel.Profesional.EspecialidadesSeleccionadas.Where( x => !personaProfesional.Especialidades.Select(p => p.Id).Contains(x)).ToList(); foreach (var especialidadAAgregar in especialidadesAAgregar) { var especialidad = session.Load<Especialidad>(especialidadAAgregar); personaProfesional.AgregarEspecialidad(especialidad); } }