def register(self, entity_cls, provider_name=None):
        """ Register the given model with the factory
        :param entity_cls: Entity class to be registered
        :param provider: Optional provider to associate with Entity class
        """
        self._validate_entity_cls(entity_cls)

        # Register the entity if not registered already
        entity_name = fully_qualified_name(entity_cls)
        provider_name = provider_name or entity_cls.meta_.provider or 'default'

        try:
            entity = self._get_entity_by_class(entity_cls)

            if entity:
                # This probably is an accidental re-registration of the entity
                #   and we should warn the user of a possible repository confusion
                raise ConfigurationError(
                    f'Entity {entity_name} has already been registered')
        except AssertionError:
            # Entity has not been registered yet. Let's go ahead and add it to the registry.
            entity_record = RepositoryFactory.EntityRecord(
                name=entity_cls.__name__,
                qualname=entity_name,
                entity_cls=entity_cls,
                provider_name=provider_name,
                model_cls=None
            )
            self._registry[entity_name] = entity_record
            logger.debug(
                f'Registered entity {entity_name} with provider {provider_name}')
Register the given model with the factory
        :param entity_cls: Entity class to be registered
        :param provider: Optional provider to associate with Entity class