Beispiel #1
0
        public void VisitEntityContainerElements(IEnumerable <IEdmEntityContainerElement> elements)
        {
            foreach (IEdmEntityContainerElement element in elements)
            {
                EdmContainerElementKind containerElementKind = element.ContainerElementKind;
                switch (containerElementKind)
                {
                case EdmContainerElementKind.None:
                {
                    this.ProcessEntityContainerElement(element);
                    continue;
                }

                case EdmContainerElementKind.EntitySet:
                {
                    this.ProcessEntitySet((IEdmEntitySet)element);
                    continue;
                }

                case EdmContainerElementKind.FunctionImport:
                {
                    this.ProcessFunctionImport((IEdmFunctionImport)element);
                    continue;
                }
                }
                throw new InvalidOperationException(Strings.UnknownEnumVal_ContainerElementKind(element.ContainerElementKind.ToString()));
            }
        }
        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));
        }
Beispiel #3
0
 private IEnumerable <T> ContainerElementsByKind <T>(IEdmEntityContainer entityContainer, EdmContainerElementKind kind) where T : class
 {
     return(entityContainer
            .Elements
            .Where(element => element is T)
            .Select(element => element as T));
 }