public void ImportEntities(IEnumerable <MappedEntity> mappedEntities)
        {
            int count = 0;

            foreach (MappedEntity mappedEntity in mappedEntities)
            {
                bool   newEntity = false;
                Entity entity    = _entityRepository
                                   .GetEntityByUniqueValue(
                    mappedEntity.UniqueFieldType,
                    mappedEntity.UniqueFieldValue,
                    LoadLevel.DataOnly);
                if (entity == null)
                {
                    EntityType entityType = _modelsRepository
                                            .GetEntityType(mappedEntity.EntityType);
                    entity    = Entity.CreateEntity(entityType);
                    newEntity = true;
                }

                bool entityModified = false;
                foreach (MappedField mappedField in mappedEntity.Fields)
                {
                    // This extension method is much more efficient than the built-in GetField() method.
                    Field field = entity.GetFieldOrdinal(mappedField.Name);
                    if (field == null)
                    {
                        throw new InvalidOperationException(
                                  $"The field '{mappedField.Name}' does not exist in the model.");
                    }

                    object fieldValue = mappedField.Value;

                    field.Data = fieldValue;

                    entityModified = true;
                }

                if (entity.FieldSetId != mappedEntity.FieldSet)
                {
                    entity.FieldSetId = mappedEntity.FieldSet;
                    entityModified    = true;
                }

                if (entity.Id == 0)
                {
                    entity = _entityRepository.AddEntity(entity);
                }
                else if (entityModified)
                {
                    entity = _entityRepository.UpdateEntity(entity);
                }

                foreach (MappedLink mappedLink in mappedEntity.Links)
                {
                    ImportLink(mappedLink, entity, newEntity);
                }

                count++;
            }

            _context.Log(LogLevel.Information, $"Finished importing {count} entities.");
        }