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
- ChangePasswordDesigner.cs
- StaticExtension.cs
- SettingsPropertyNotFoundException.cs
- HybridWebProxyFinder.cs
- JsonReader.cs
- EncryptedXml.cs
- ActivityXRefConverter.cs
- StorageTypeMapping.cs
- MD5CryptoServiceProvider.cs
- XmlText.cs
- WSFederationHttpSecurity.cs
- HitTestDrawingContextWalker.cs
- HttpCacheVary.cs
- Triangle.cs
- SqlResolver.cs
- XmlSchemaObjectTable.cs
- MaskedTextProvider.cs
- CalendarTable.cs
- CodeExpressionStatement.cs
- ApplicationSecurityInfo.cs
- PolicyStatement.cs
- StrongBox.cs
- SerializerWriterEventHandlers.cs
- MultiTrigger.cs
- OdbcReferenceCollection.cs
- TaskFileService.cs
- ToolStripDropDownItem.cs
- DomainLiteralReader.cs
- X509Extension.cs
- InternalPermissions.cs
- SystemIcons.cs
- FieldBuilder.cs
- WebBrowserNavigatingEventHandler.cs
- RuntimeCompatibilityAttribute.cs
- BamlMapTable.cs
- StreamReader.cs
- GlobalizationSection.cs
- Size.cs
- ResourcePart.cs
- WinEventWrap.cs
- DependentList.cs
- ServiceTimeoutsElement.cs
- X509Certificate2Collection.cs
- TreeNodeConverter.cs
- SplitterCancelEvent.cs
- New.cs
- HttpPostLocalhostServerProtocol.cs
- TextWriter.cs
- LayoutEvent.cs
- ComNativeDescriptor.cs
- DependencyStoreSurrogate.cs
- ToolBar.cs
- FillErrorEventArgs.cs
- log.cs
- AssemblySettingAttributes.cs
- XmlCompatibilityReader.cs
- DigestTraceRecordHelper.cs
- CompatibleComparer.cs
- DataServiceKeyAttribute.cs
- Viewport3DVisual.cs
- MetadataArtifactLoader.cs
- SqlAliaser.cs
- TextBoxLine.cs
- NullableDoubleSumAggregationOperator.cs
- CompiledIdentityConstraint.cs
- StorageAssociationSetMapping.cs
- WindowsTokenRoleProvider.cs
- DrawListViewSubItemEventArgs.cs
- ConfigXmlWhitespace.cs
- XmlJsonReader.cs
- SimpleType.cs
- EventProvider.cs
- RoutedEvent.cs
- ObjectDisposedException.cs
- ExecutedRoutedEventArgs.cs
- xmlformatgeneratorstatics.cs
- CapabilitiesState.cs
- ScriptingJsonSerializationSection.cs
- remotingproxy.cs
- SynchronizedInputPattern.cs
- KnownTypeDataContractResolver.cs
- MetabaseSettingsIis7.cs
- ArgumentException.cs
- DataMisalignedException.cs
- HtmlInputButton.cs
- BinaryObjectReader.cs
- ActivityDesignerResources.cs
- FlowLayout.cs
- JsonQNameDataContract.cs
- CharEntityEncoderFallback.cs
- BitArray.cs
- UdpDiscoveryEndpointElement.cs
- NetCodeGroup.cs
- DeflateInput.cs
- WebPartDisplayModeEventArgs.cs
- MethodImplAttribute.cs
- RenderData.cs
- LogEntryHeaderDeserializer.cs
- PersonalizationStateInfo.cs
- FunctionNode.cs