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
- XmlObjectSerializerWriteContextComplex.cs
- WorkflowService.cs
- XPathMessageFilterElementCollection.cs
- CancelEventArgs.cs
- ColumnWidthChangingEvent.cs
- CancellationTokenRegistration.cs
- AssemblyAttributesGoHere.cs
- ReaderContextStackData.cs
- XmlSchemaExporter.cs
- Rules.cs
- SqlUtil.cs
- EncodingDataItem.cs
- TemplateXamlParser.cs
- ReflectEventDescriptor.cs
- InternalConfigConfigurationFactory.cs
- TdsParserSessionPool.cs
- MetadataArtifactLoaderFile.cs
- ContentDisposition.cs
- TempFiles.cs
- RootBrowserWindow.cs
- SvcMapFileSerializer.cs
- RadioButtonDesigner.cs
- DataReceivedEventArgs.cs
- ClientUtils.cs
- HtmlTableRowCollection.cs
- Figure.cs
- HealthMonitoringSection.cs
- Separator.cs
- StringWriter.cs
- XmlSchemaAttributeGroupRef.cs
- Membership.cs
- ConfigXmlText.cs
- FlowDocumentView.cs
- NotImplementedException.cs
- InternalsVisibleToAttribute.cs
- WebControlToolBoxItem.cs
- StringSorter.cs
- QueryableDataSourceView.cs
- ReadWriteObjectLock.cs
- Normalization.cs
- Util.cs
- brushes.cs
- VerificationAttribute.cs
- DocumentSchemaValidator.cs
- SharedPersonalizationStateInfo.cs
- HighContrastHelper.cs
- WebServiceClientProxyGenerator.cs
- BigInt.cs
- SpanIndex.cs
- ParseHttpDate.cs
- ListViewUpdateEventArgs.cs
- BuildDependencySet.cs
- SignatureHelper.cs
- TrackingDataItem.cs
- Debug.cs
- IntSecurity.cs
- CircleHotSpot.cs
- ListManagerBindingsCollection.cs
- TabControlAutomationPeer.cs
- DocumentPageView.cs
- Viewport3DAutomationPeer.cs
- __Error.cs
- DecimalMinMaxAggregationOperator.cs
- TextSyndicationContentKindHelper.cs
- CodeSubDirectory.cs
- Recipient.cs
- TransactionValidationBehavior.cs
- HostUtils.cs
- CreateSequence.cs
- TextPenaltyModule.cs
- ObjectItemCachedAssemblyLoader.cs
- HwndSubclass.cs
- FrameAutomationPeer.cs
- Debug.cs
- compensatingcollection.cs
- Currency.cs
- SmiEventSink_DeferedProcessing.cs
- EventlogProvider.cs
- WebResourceAttribute.cs
- RNGCryptoServiceProvider.cs
- ComAdminInterfaces.cs
- EventLogInformation.cs
- SqlDataSourceCache.cs
- Console.cs
- PlatformCulture.cs
- HandlerBase.cs
- DateTimeFormat.cs
- XPathNodeInfoAtom.cs
- TouchDevice.cs
- SubstitutionList.cs
- ParserStreamGeometryContext.cs
- SaveFileDialog.cs
- DataExpression.cs
- InternalConfigEventArgs.cs
- FormsAuthenticationCredentials.cs
- CommonObjectSecurity.cs
- RowToFieldTransformer.cs
- Html32TextWriter.cs
- ServiceDescriptions.cs
- HtmlAnchor.cs