private InternalEntityTypeBuilder AddDelegatedIdentityEntity(
            TypeIdentity type,
            string definingNavigationName,
            EntityType definingEntityType,
            ConfigurationSource configurationSource)
        {
            if (IsIgnored(type, configurationSource))
            {
                return(null);
            }

            var clrType    = type.Type;
            var entityType = clrType == null
                ? Metadata.FindEntityType(type.Name)
                : Metadata.FindEntityType(clrType);

            if (entityType != null)
            {
                if (!configurationSource.Overrides(entityType.GetConfigurationSource()))
                {
                    return(null);
                }

                Ignore(entityType, configurationSource);
            }

            if (clrType == null)
            {
                Metadata.Unignore(type.Name);

                entityType = Metadata.AddDelegatedIdentityEntityType(type.Name, definingNavigationName, definingEntityType, configurationSource);
            }
            else
            {
                Metadata.Unignore(clrType);

                entityType = Metadata.AddDelegatedIdentityEntityType(clrType, definingNavigationName, definingEntityType, configurationSource);
            }

            return(entityType?.Builder);
        }