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
- ScriptMethodAttribute.cs
- EncoderExceptionFallback.cs
- Stream.cs
- PrintPreviewDialog.cs
- FilterUserControlBase.cs
- DashStyle.cs
- OdbcCommandBuilder.cs
- ColorConvertedBitmapExtension.cs
- Models.cs
- ParallelTimeline.cs
- OperandQuery.cs
- PerformanceCounterPermission.cs
- PackageProperties.cs
- SqlWebEventProvider.cs
- EntityDesignerUtils.cs
- SafeArrayTypeMismatchException.cs
- TheQuery.cs
- TaskExtensions.cs
- Size3DConverter.cs
- StrokeNodeOperations.cs
- AddInBase.cs
- CreateUserErrorEventArgs.cs
- _TransmitFileOverlappedAsyncResult.cs
- ClientClassGenerator.cs
- ModelItem.cs
- NotCondition.cs
- UnsafeNativeMethods.cs
- DynamicExpression.cs
- xsdvalidator.cs
- WebPartMovingEventArgs.cs
- RepeatInfo.cs
- CodeRegionDirective.cs
- ChtmlCalendarAdapter.cs
- HostingEnvironmentWrapper.cs
- ViewLoader.cs
- QuotedStringWriteStateInfo.cs
- PreProcessor.cs
- Byte.cs
- SqlXml.cs
- RegistrySecurity.cs
- BuildProvider.cs
- SectionInput.cs
- QueryCreatedEventArgs.cs
- DBCommandBuilder.cs
- MobileComponentEditorPage.cs
- AutomationPropertyInfo.cs
- ColumnClickEvent.cs
- DataGridCellsPresenter.cs
- Style.cs
- Graphics.cs
- RulePatternOps.cs
- HandleValueEditor.cs
- Rijndael.cs
- ZipIOFileItemStream.cs
- ObjectQuery_EntitySqlExtensions.cs
- DockProviderWrapper.cs
- LabelEditEvent.cs
- ParagraphResult.cs
- WindowsComboBox.cs
- TemplateNameScope.cs
- Message.cs
- LinqDataSourceUpdateEventArgs.cs
- MobileTextWriter.cs
- ReversePositionQuery.cs
- ButtonFieldBase.cs
- CodeActivity.cs
- ConfigsHelper.cs
- EntityDesignerUtils.cs
- NonBatchDirectoryCompiler.cs
- ProcessHostServerConfig.cs
- ModelUIElement3D.cs
- WindowsUpDown.cs
- DataGridAddNewRow.cs
- ColumnMapProcessor.cs
- CustomCategoryAttribute.cs
- CodeBlockBuilder.cs
- FloaterBaseParaClient.cs
- VariableElement.cs
- SoapCodeExporter.cs
- TemplateLookupAction.cs
- ResourcesBuildProvider.cs
- StylusDevice.cs
- TabOrder.cs
- SecurityTokenValidationException.cs
- TextInfo.cs
- DayRenderEvent.cs
- TextPointer.cs
- SqlMethodAttribute.cs
- TextWriterEngine.cs
- StateDesigner.Layouts.cs
- DataControlExtensions.cs
- DataGridViewCellValueEventArgs.cs
- ValueConversionAttribute.cs
- TypeInfo.cs
- Identifier.cs
- VisualBrush.cs
- PropertyTab.cs
- StrokeNodeOperations.cs
- FutureFactory.cs
- DBAsyncResult.cs