Пример #1
0
        public void AddElement(IEdmEntityContainerElement element)
        {
            EdmUtil.CheckArgumentNull <IEdmEntityContainerElement>(element, "element");
            this.containerElements.Add(element);
            EdmContainerElementKind containerElementKind = element.ContainerElementKind;

            switch (containerElementKind)
            {
            case EdmContainerElementKind.None:
            {
                throw new InvalidOperationException(Strings.EdmEntityContainer_CannotUseElementWithTypeNone);
            }

            case EdmContainerElementKind.EntitySet:
            {
                RegistrationHelper.AddElement <IEdmEntitySet>((IEdmEntitySet)element, element.Name, this.entitySetDictionary, new Func <IEdmEntitySet, IEdmEntitySet, IEdmEntitySet>(RegistrationHelper.CreateAmbiguousEntitySetBinding));
                return;
            }

            case EdmContainerElementKind.FunctionImport:
            {
                RegistrationHelper.AddFunction <IEdmFunctionImport>((IEdmFunctionImport)element, element.Name, this.functionImportDictionary);
                return;
            }
            }
            throw new InvalidOperationException(Strings.UnknownEnumVal_ContainerElementKind(element.ContainerElementKind));
        }
        private Dictionary <string, object> ComputeFunctionImportsDictionary()
        {
            Dictionary <string, object> strs = new Dictionary <string, object>();

            foreach (IEdmFunctionImport edmFunctionImport in this.Elements.OfType <IEdmFunctionImport>())
            {
                RegistrationHelper.AddFunction <IEdmFunctionImport>(edmFunctionImport, edmFunctionImport.Name, strs);
            }
            return(strs);
        }
Пример #3
0
        /// <summary>
        /// Adds an entity container element to this entity container.
        /// </summary>
        /// <param name="element">The element to add.</param>
        public void AddElement(IEdmEntityContainerElement element)
        {
            EdmUtil.CheckArgumentNull(element, "element");

            this.containerElements.Add(element);

            switch (element.ContainerElementKind)
            {
            case EdmContainerElementKind.EntitySet:
                RegistrationHelper.AddElement((IEdmEntitySet)element, element.Name, this.entitySetDictionary, RegistrationHelper.CreateAmbiguousEntitySetBinding);
                break;

            case EdmContainerElementKind.FunctionImport:
                RegistrationHelper.AddFunction((IEdmFunctionImport)element, element.Name, this.functionImportDictionary);
                break;

            case EdmContainerElementKind.None:
                throw new InvalidOperationException(Edm.Strings.EdmEntityContainer_CannotUseElementWithTypeNone);

            default:
                throw new InvalidOperationException(Edm.Strings.UnknownEnumVal_ContainerElementKind(element.ContainerElementKind));
            }
        }