internal static MetadataItem LoadSchemaElement(
            System.Data.Entity.Core.SchemaObjectModel.SchemaType element,
            DbProviderManifest providerManifest,
            Converter.ConversionCache convertedItemCache,
            Dictionary <SchemaElement, GlobalItem> newGlobalItems)
        {
            GlobalItem globalItem;

            if (newGlobalItems.TryGetValue((SchemaElement)element, out globalItem))
            {
                return((MetadataItem)globalItem);
            }
            System.Data.Entity.Core.SchemaObjectModel.EntityContainer element1 = element as System.Data.Entity.Core.SchemaObjectModel.EntityContainer;
            if (element1 != null)
            {
                return((MetadataItem)Converter.ConvertToEntityContainer(element1, providerManifest, convertedItemCache, newGlobalItems));
            }
            if (element is SchemaEntityType)
            {
                return((MetadataItem)Converter.ConvertToEntityType((SchemaEntityType)element, providerManifest, convertedItemCache, newGlobalItems));
            }
            if (element is Relationship)
            {
                return((MetadataItem)Converter.ConvertToAssociationType((Relationship)element, providerManifest, convertedItemCache, newGlobalItems));
            }
            if (element is SchemaComplexType)
            {
                return((MetadataItem)Converter.ConvertToComplexType((SchemaComplexType)element, providerManifest, convertedItemCache, newGlobalItems));
            }
            if (element is System.Data.Entity.Core.SchemaObjectModel.Function)
            {
                return((MetadataItem)Converter.ConvertToFunction((System.Data.Entity.Core.SchemaObjectModel.Function)element, providerManifest, convertedItemCache, (EntityContainer)null, newGlobalItems));
            }
            if (element is SchemaEnumType)
            {
                return((MetadataItem)Converter.ConvertToEnumType((SchemaEnumType)element, newGlobalItems));
            }
            return((MetadataItem)null);
        }