Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityModel / SchemaObjectModel / RowTypeElement.cs / 1305376 / RowTypeElement.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using Som = System.Data.EntityModel.SchemaObjectModel; using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; using System.Globalization; using System.Xml; using System.Xml.Schema; using System.Data; using System.IO; using System.Data.Metadata.Edm; using System.Data.Entity; using System.Text; namespace System.Data.EntityModel.SchemaObjectModel { class RowTypeElement : ModelFunctionTypeElement { private SchemaElementLookUpTable_properties = new SchemaElementLookUpTable (); #region constructor /// /// /// /// internal RowTypeElement(SchemaElement parentElement) : base(parentElement) { } protected override bool HandleElement(XmlReader reader) { if (CanHandleElement(reader, XmlConstants.Property)) { HandlePropertyElement(reader); return true; } return false; } protected void HandlePropertyElement(XmlReader reader) { Debug.Assert(reader != null); var property = new RowTypePropertyElement(this); property.Parse(reader); _properties.Add(property, true, Strings.DuplicateEntityContainerMemberName /**/); } #endregion internal override void ResolveTopLevelNames() { foreach (var property in _properties) { property.ResolveTopLevelNames(); } } internal override void WriteIdentity(StringBuilder builder) { builder.Append("Row["); bool first = true; foreach (RowTypePropertyElement property in _properties) { if (first) { first = !first; } else { builder.Append(", "); } property.WriteIdentity(builder); } builder.Append("]"); } internal override TypeUsage GetTypeUsage() { if (_typeUsage == null) { var listOfProperties = new List(); foreach (var property in _properties) { var edmProperty = new EdmProperty(property.FQName, property.GetTypeUsage()); edmProperty.AddMetadataProperties(property.OtherContent); //edmProperty.DeclaringType listOfProperties.Add(edmProperty); } RowType rowType = new RowType(listOfProperties); rowType.DataSpace = DataSpace.CSpace; rowType.AddMetadataProperties(this.OtherContent); _typeUsage = TypeUsage.Create(rowType); } return _typeUsage; } internal override bool ResolveNameAndSetTypeUsage(Converter.ConversionCache convertedItemCache, Dictionary newGlobalItems) { bool result = true; if (_typeUsage == null) { foreach (var property in _properties) { if (!property.ResolveNameAndSetTypeUsage(convertedItemCache, newGlobalItems)) { result = false; } } } return result; } internal override void Validate() { foreach (var property in _properties) { property.Validate(); } if (_properties.Count == 0) { AddError(ErrorCode.RowTypeWithoutProperty, EdmSchemaErrorSeverity.Error, Strings.RowTypeWithoutProperty); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using Som = System.Data.EntityModel.SchemaObjectModel; using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; using System.Globalization; using System.Xml; using System.Xml.Schema; using System.Data; using System.IO; using System.Data.Metadata.Edm; using System.Data.Entity; using System.Text; namespace System.Data.EntityModel.SchemaObjectModel { class RowTypeElement : ModelFunctionTypeElement { private SchemaElementLookUpTable_properties = new SchemaElementLookUpTable (); #region constructor /// /// /// /// internal RowTypeElement(SchemaElement parentElement) : base(parentElement) { } protected override bool HandleElement(XmlReader reader) { if (CanHandleElement(reader, XmlConstants.Property)) { HandlePropertyElement(reader); return true; } return false; } protected void HandlePropertyElement(XmlReader reader) { Debug.Assert(reader != null); var property = new RowTypePropertyElement(this); property.Parse(reader); _properties.Add(property, true, Strings.DuplicateEntityContainerMemberName /**/); } #endregion internal override void ResolveTopLevelNames() { foreach (var property in _properties) { property.ResolveTopLevelNames(); } } internal override void WriteIdentity(StringBuilder builder) { builder.Append("Row["); bool first = true; foreach (RowTypePropertyElement property in _properties) { if (first) { first = !first; } else { builder.Append(", "); } property.WriteIdentity(builder); } builder.Append("]"); } internal override TypeUsage GetTypeUsage() { if (_typeUsage == null) { var listOfProperties = new List(); foreach (var property in _properties) { var edmProperty = new EdmProperty(property.FQName, property.GetTypeUsage()); edmProperty.AddMetadataProperties(property.OtherContent); //edmProperty.DeclaringType listOfProperties.Add(edmProperty); } RowType rowType = new RowType(listOfProperties); rowType.DataSpace = DataSpace.CSpace; rowType.AddMetadataProperties(this.OtherContent); _typeUsage = TypeUsage.Create(rowType); } return _typeUsage; } internal override bool ResolveNameAndSetTypeUsage(Converter.ConversionCache convertedItemCache, Dictionary newGlobalItems) { bool result = true; if (_typeUsage == null) { foreach (var property in _properties) { if (!property.ResolveNameAndSetTypeUsage(convertedItemCache, newGlobalItems)) { result = false; } } } return result; } internal override void Validate() { foreach (var property in _properties) { property.Validate(); } if (_properties.Count == 0) { AddError(ErrorCode.RowTypeWithoutProperty, EdmSchemaErrorSeverity.Error, Strings.RowTypeWithoutProperty); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextElementEnumerator.cs
- WpfSharedXamlSchemaContext.cs
- BevelBitmapEffect.cs
- UnicastIPAddressInformationCollection.cs
- PackUriHelper.cs
- GenericXmlSecurityTokenAuthenticator.cs
- RectConverter.cs
- WinInet.cs
- BindingEntityInfo.cs
- ImportedNamespaceContextItem.cs
- BufferedGraphicsContext.cs
- DataGridPagingPage.cs
- DbgUtil.cs
- LogicalExpr.cs
- QueueAccessMode.cs
- HyperlinkAutomationPeer.cs
- StringBuilder.cs
- PictureBox.cs
- SiteMapPath.cs
- BookmarkUndoUnit.cs
- ColumnWidthChangedEvent.cs
- EventLogPermissionHolder.cs
- HttpHandlerAction.cs
- ContextStack.cs
- WebControlsSection.cs
- BaseCollection.cs
- SourceChangedEventArgs.cs
- AsyncDataRequest.cs
- ChangeDirector.cs
- EventProviderClassic.cs
- XmlTypeMapping.cs
- HttpProfileBase.cs
- ExternalException.cs
- StringKeyFrameCollection.cs
- HostingEnvironmentException.cs
- EventBuilder.cs
- GenericAuthenticationEventArgs.cs
- PackWebResponse.cs
- GAC.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- RTLAwareMessageBox.cs
- ImageField.cs
- KnownBoxes.cs
- BaseCollection.cs
- Compilation.cs
- LocalizationParserHooks.cs
- WebPartsSection.cs
- StringOutput.cs
- SizeLimitedCache.cs
- ParserHooks.cs
- TemplateBindingExtensionConverter.cs
- SemanticResultKey.cs
- EllipticalNodeOperations.cs
- UnsafeNativeMethods.cs
- BaseProcessor.cs
- Attribute.cs
- Persist.cs
- DragCompletedEventArgs.cs
- EmptyEnumerable.cs
- DataProtection.cs
- RichTextBox.cs
- SecurityKeyType.cs
- Interlocked.cs
- MsmqHostedTransportManager.cs
- SqlDataSourceEnumerator.cs
- CultureInfo.cs
- TextRunCache.cs
- UnknownWrapper.cs
- SiteMapNode.cs
- X509Extension.cs
- VariableExpressionConverter.cs
- DefaultTextStoreTextComposition.cs
- ControlCachePolicy.cs
- MexNamedPipeBindingElement.cs
- WindowsGrip.cs
- PrintPreviewControl.cs
- AnnotationObservableCollection.cs
- SqlSelectClauseBuilder.cs
- RuntimeIdentifierPropertyAttribute.cs
- DocumentReferenceCollection.cs
- ListViewInsertionMark.cs
- WindowShowOrOpenTracker.cs
- EpmAttributeNameBuilder.cs
- ViewSimplifier.cs
- ApplicationInfo.cs
- Panel.cs
- KeyGesture.cs
- XmlProcessingInstruction.cs
- WebPartUtil.cs
- TypefaceMetricsCache.cs
- MouseCaptureWithinProperty.cs
- PropertyInfo.cs
- ClientTargetSection.cs
- Document.cs
- XmlSerializationReader.cs
- FirstMatchCodeGroup.cs
- LayoutEngine.cs
- UInt64.cs
- ProtocolElementCollection.cs
- ToolStripContentPanel.cs