private void Load(XmlReader reader) { Schema schema; var errors = SchemaManager.LoadProviderManifest( reader, reader.BaseURI.Length > 0 ? reader.BaseURI : null, true /*checkForSystemNamespace*/, out schema); if (errors.Count != 0) { throw new ProviderIncompatibleException(Strings.IncorrectProviderManifest + Helper.CombineErrorMessage(errors)); } _namespaceName = schema.Namespace; var listOfPrimitiveTypes = new List <PrimitiveType>(); foreach (var schemaType in schema.SchemaTypes) { var typeElement = schemaType as TypeElement; if (typeElement != null) { var type = typeElement.PrimitiveType; type.ProviderManifest = this; type.DataSpace = DataSpace.SSpace; type.SetReadOnly(); listOfPrimitiveTypes.Add(type); _storeTypeNameToStorePrimitiveType.Add(type.Name.ToLowerInvariant(), type); _storeTypeNameToEdmPrimitiveType.Add( type.Name.ToLowerInvariant(), EdmProviderManifest.Instance.GetPrimitiveType(type.PrimitiveTypeKind)); ReadOnlyCollection <FacetDescription> descriptions; if (EnumerableToReadOnlyCollection(typeElement.FacetDescriptions, out descriptions)) { _facetDescriptions.Add(type, descriptions); } } } _primitiveTypes = new ReadOnlyCollection <PrimitiveType>(listOfPrimitiveTypes.ToArray()); // load the functions ItemCollection collection = new EmptyItemCollection(); var items = Converter.ConvertSchema(schema, this, collection); if (!EnumerableToReadOnlyCollection(items, out _functions)) { _functions = Helper.EmptyEdmFunctionReadOnlyCollection; } //SetReadOnly on all the Functions foreach (var function in _functions) { function.SetReadOnly(); } }
private void Load(XmlReader reader) { Schema schema; IList <EdmSchemaError> errors = SchemaManager.LoadProviderManifest(reader, reader.BaseURI.Length > 0 ? reader.BaseURI : null, true /*checkForSystemNamespace*/, out schema); if (errors.Count != 0) { throw EntityUtil.ProviderIncompatible(Strings.IncorrectProviderManifest + Helper.CombineErrorMessage(errors)); } _namespaceName = schema.Namespace; List <PrimitiveType> listOfPrimitiveTypes = new List <PrimitiveType>(); foreach (System.Data.EntityModel.SchemaObjectModel.SchemaType schemaType in schema.SchemaTypes) { TypeElement typeElement = schemaType as TypeElement; if (typeElement != null) { PrimitiveType type = typeElement.PrimitiveType; type.ProviderManifest = this; type.DataSpace = DataSpace.SSpace; type.SetReadOnly(); listOfPrimitiveTypes.Add(type); _storeTypeNameToStorePrimitiveType.Add(type.Name.ToLowerInvariant(), type); _storeTypeNameToEdmPrimitiveType.Add(type.Name.ToLowerInvariant(), EdmProviderManifest.Instance.GetPrimitiveType(type.PrimitiveTypeKind)); System.Collections.ObjectModel.ReadOnlyCollection <FacetDescription> descriptions; if (EnumerableToReadOnlyCollection(typeElement.FacetDescriptions, out descriptions)) { _facetDescriptions.Add(type, descriptions); } } } this._primitiveTypes = Array.AsReadOnly(listOfPrimitiveTypes.ToArray()); // load the functions ItemCollection collection = new EmptyItemCollection(); IEnumerable <GlobalItem> items = Converter.ConvertSchema(schema, this, collection); if (!EnumerableToReadOnlyCollection <EdmFunction, GlobalItem>(items, out this._functions)) { this._functions = Helper.EmptyEdmFunctionReadOnlyCollection; } //SetReadOnly on all the Functions foreach (EdmFunction function in this._functions) { function.SetReadOnly(); } }