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
- PolicyDesigner.cs
- Viewport2DVisual3D.cs
- InputElement.cs
- IPPacketInformation.cs
- FrameworkContentElementAutomationPeer.cs
- Types.cs
- TickBar.cs
- HttpPostProtocolImporter.cs
- ProfileGroupSettingsCollection.cs
- HttpCapabilitiesSectionHandler.cs
- ExpressionSelection.cs
- Enum.cs
- RegionInfo.cs
- SetState.cs
- XmlSiteMapProvider.cs
- keycontainerpermission.cs
- GlyphTypeface.cs
- ButtonRenderer.cs
- SchemaType.cs
- NativeObjectSecurity.cs
- StorageComplexPropertyMapping.cs
- XmlReflectionMember.cs
- WhiteSpaceTrimStringConverter.cs
- Control.cs
- CompilerGeneratedAttribute.cs
- SimpleRecyclingCache.cs
- control.ime.cs
- ThousandthOfEmRealPoints.cs
- QueuePropertyVariants.cs
- OleDbCommand.cs
- SimplePropertyEntry.cs
- StreamAsIStream.cs
- EditorZoneDesigner.cs
- XmlReflectionImporter.cs
- HttpRuntimeSection.cs
- Missing.cs
- WebConfigManager.cs
- CompilerInfo.cs
- EventWaitHandleSecurity.cs
- SequentialOutput.cs
- GridEntryCollection.cs
- MarkupCompilePass1.cs
- DeploymentSection.cs
- SByteStorage.cs
- TextBoxAutoCompleteSourceConverter.cs
- ScrollItemPattern.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- CopyNodeSetAction.cs
- RuntimeHelpers.cs
- SqlUtils.cs
- StylusEditingBehavior.cs
- TrackingProfileCache.cs
- Pair.cs
- XmlSerializationReader.cs
- LinkLabelLinkClickedEvent.cs
- RequiredFieldValidator.cs
- SqlConnectionStringBuilder.cs
- KeyValuePair.cs
- CollectionViewGroup.cs
- isolationinterop.cs
- QilInvokeLateBound.cs
- CounterCreationData.cs
- PathParser.cs
- Thumb.cs
- WindowsComboBox.cs
- GeometryCombineModeValidation.cs
- PeerNameRecord.cs
- NameObjectCollectionBase.cs
- ToolStripDropTargetManager.cs
- QilInvokeLateBound.cs
- PerfCounterSection.cs
- OdbcReferenceCollection.cs
- CompilerParameters.cs
- MessageContractImporter.cs
- ConfigurationSettings.cs
- PolygonHotSpot.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- tooltip.cs
- ShaperBuffers.cs
- EntityCollection.cs
- XsltOutput.cs
- Evidence.cs
- ProcessThreadDesigner.cs
- StyleModeStack.cs
- XamlToRtfWriter.cs
- DataServiceEntityAttribute.cs
- GradientBrush.cs
- ProcessRequestArgs.cs
- PhonemeEventArgs.cs
- StringResourceManager.cs
- Mappings.cs
- GuidelineSet.cs
- EncryptedKey.cs
- HashUtility.cs
- DrawingGroupDrawingContext.cs
- ResolveNameEventArgs.cs
- LocalizedNameDescriptionPair.cs
- FileClassifier.cs
- COM2ComponentEditor.cs
- DomainConstraint.cs