Exemplo n.º 1
0
        private void WriteTypeElement(EdmType type)
        {
            WriteErrorsComment(type);
            switch (type.BuiltInTypeKind)
            {
            case BuiltInTypeKind.EntityType:
                WriteEntityTypeElement((EntityType)type);
                break;

            case BuiltInTypeKind.AssociationType:
                WriteAssociationTypeElement((AssociationType)type);
                break;

            case BuiltInTypeKind.EdmFunction:
                WriteFunctionElement((EdmFunction)type);
                break;

            case BuiltInTypeKind.ComplexType:
                WriteComplexTypeElement((ComplexType)type);
                break;

            case BuiltInTypeKind.RowType:
                WriteRowTypeElement((RowType)type);
                break;

            default:
                throw EDesignUtil.NonSerializableType(type.BuiltInTypeKind);
            }
        }
Exemplo n.º 2
0
        private void WriteEntityContainerElement(EntityContainer container)
        {
            _writer.WriteStartElement(XmlConstants.EntityContainer);
            _writer.WriteAttributeString(XmlConstants.Name, container.Name);

            //
            // Generate "annotation:LazyLoadingEnabled="true"" for model schema
            //
            if (_isModel && container.MetadataProperties.Contains(DesignXmlConstants.EdmAnnotationNamespace + ":" + DesignXmlConstants.LazyLoadingEnabled))
            {
                _writer.WriteAttributeString(
                    TranslateFacetNameToAttributeName(
                        DesignXmlConstants.LazyLoadingEnabled),
                    DesignXmlConstants.EdmAnnotationNamespace,
                    GetAttributeValueString(
                        container.MetadataProperties[DesignXmlConstants.EdmAnnotationNamespace + ":" + DesignXmlConstants.LazyLoadingEnabled].Value));
            }

            foreach (EntitySetBase set in container.BaseEntitySets)
            {
                switch (set.BuiltInTypeKind)
                {
                case BuiltInTypeKind.EntitySet:
                    WriteEntitySetElement((EntitySet)set);
                    break;

                case BuiltInTypeKind.AssociationSet:
                    WriteAssociationSetElement((AssociationSet)set);
                    break;

                default:
                    throw EDesignUtil.NonSerializableType(set.BuiltInTypeKind);
                }
            }

            foreach (EdmFunction functionImport in container.FunctionImports.Where(fi => fi.IsComposableAttribute))
            {
                WriteFunctionElement(functionImport);
            }

            _writer.WriteEndElement();
        }