private static ComplexType ConvertToComplexType(
            SchemaComplexType element,
            DbProviderManifest providerManifest,
            Converter.ConversionCache convertedItemCache,
            Dictionary <SchemaElement, GlobalItem> newGlobalItems)
        {
            ComplexType complexType = new ComplexType(element.Name, element.Namespace, Converter.GetDataSpace(providerManifest));

            newGlobalItems.Add((SchemaElement)element, (GlobalItem)complexType);
            foreach (StructuredProperty property in element.Properties)
            {
                complexType.AddMember((EdmMember)Converter.ConvertToProperty(property, providerManifest, convertedItemCache, newGlobalItems));
            }
            complexType.Abstract = element.IsAbstract;
            if (element.BaseType != null)
            {
                complexType.BaseType = (EdmType)Converter.LoadSchemaElement((System.Data.Entity.Core.SchemaObjectModel.SchemaType)element.BaseType, providerManifest, convertedItemCache, newGlobalItems);
            }
            if (element.Documentation != null)
            {
                complexType.Documentation = Converter.ConvertToDocumentation(element.Documentation);
            }
            Converter.AddOtherContent((SchemaElement)element, (MetadataItem)complexType);
            return(complexType);
        }
        private static EntityType ConvertToEntityType(
            SchemaEntityType element,
            DbProviderManifest providerManifest,
            Converter.ConversionCache convertedItemCache,
            Dictionary <SchemaElement, GlobalItem> newGlobalItems)
        {
            string[] strArray = (string[])null;
            if (element.DeclaredKeyProperties.Count != 0)
            {
                strArray = new string[element.DeclaredKeyProperties.Count];
                for (int index = 0; index < strArray.Length; ++index)
                {
                    strArray[index] = element.DeclaredKeyProperties[index].Property.Name;
                }
            }
            EdmProperty[] edmPropertyArray = new EdmProperty[element.Properties.Count];
            int           num = 0;

            foreach (StructuredProperty property in element.Properties)
            {
                edmPropertyArray[num++] = Converter.ConvertToProperty(property, providerManifest, convertedItemCache, newGlobalItems);
            }
            EntityType entityType = new EntityType(element.Name, element.Namespace, Converter.GetDataSpace(providerManifest), (IEnumerable <string>)strArray, (IEnumerable <EdmMember>)edmPropertyArray);

            if (element.BaseType != null)
            {
                entityType.BaseType = (EdmType)Converter.LoadSchemaElement((System.Data.Entity.Core.SchemaObjectModel.SchemaType)element.BaseType, providerManifest, convertedItemCache, newGlobalItems);
            }
            entityType.Abstract = element.IsAbstract;
            if (element.Documentation != null)
            {
                entityType.Documentation = Converter.ConvertToDocumentation(element.Documentation);
            }
            Converter.AddOtherContent((SchemaElement)element, (MetadataItem)entityType);
            newGlobalItems.Add((SchemaElement)element, (GlobalItem)entityType);
            return(entityType);
        }