public string GetNameForEntity(EntityMetadata entityMetadata, IServiceProvider services)
        {
            if (entityMetadata == null)
            {
                throw new ArgumentNullException(nameof(entityMetadata));
            }
            if (services == null)
            {
                throw new ArgumentNullException(nameof(services));
            }

            if (removePublisherPrefix)
            {
                var metadataService = (IMetadataProviderService)services.GetService(typeof(IMetadataProviderService));

                var noPrefixName = entityMetadata.IsCustomEntity == true?entityMetadata.SchemaName.Substring(entityMetadata.SchemaName.IndexOf("_", StringComparison.InvariantCulture) + 1) : entityMetadata.SchemaName;

                var result = noPrefixName;
                var equal  = metadataService.LoadMetadata().Entities.Where(x => noPrefixName == (x.IsCustomEntity == true ? x.SchemaName.Substring(x.SchemaName.IndexOf("_", StringComparison.InvariantCulture) + 1) : x.SchemaName)).Select(x => new string[] { x.SchemaName, x.IsCustomEntity == true ? x.SchemaName.Substring(x.SchemaName.IndexOf("_", StringComparison.InvariantCulture) + 1) : x.SchemaName }).ToArray();
                if (equal.Length > 1)
                {
                    for (int i = 0; i < equal.Length; i++)
                    {
                        if (equal[i][0] == entityMetadata.SchemaName)
                        {
                            result = equal[i][1] + (i + 1);
                            break;
                        }
                    }
                }
                return(result);
            }
            else
            {
                return(namingService.GetNameForEntity(entityMetadata, services));
            }
        }