Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / EntityModel / SchemaObjectModel / ReferentialConstraintRoleElement.cs / 2 / ReferentialConstraintRoleElement.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; using System.Xml; using System.Data; using System.Data.Metadata.Edm; namespace System.Data.EntityModel.SchemaObjectModel { ////// Represents an role element in referential constraint element. /// internal sealed class ReferentialConstraintRoleElement : SchemaElement { private List_roleProperties; private IRelationshipEnd _end; /// /// Constructs an EntityContainerAssociationSetEnd /// /// Reference to the schema element. public ReferentialConstraintRoleElement(ReferentialConstraint parentElement) : base( parentElement ) { } public IListRoleProperties { get { if (_roleProperties == null) { _roleProperties = new List (); } return _roleProperties; } } public IRelationshipEnd End { get { return _end; } } protected override bool HandleElement(XmlReader reader) { if (base.HandleElement(reader)) { return true; } else if (CanHandleElement(reader, XmlConstants.PropertyRef)) { HandlePropertyRefElement(reader); return true; } return false; } protected override bool HandleAttribute(XmlReader reader) { if (CanHandleAttribute(reader, XmlConstants.Role)) { HandleRoleAttribute(reader); return true; } return false; } /// /// /// /// private void HandlePropertyRefElement(XmlReader reader) { PropertyRefElement property = new PropertyRefElement(ParentElement); property.Parse(reader); this.RoleProperties.Add(property); } private void HandleRoleAttribute(XmlReader reader) { string roleName; Utils.GetString(Schema, reader, out roleName); this.Name = roleName; } ////// Used during the resolve phase to resolve the type name to the object that represents that type /// internal override void ResolveTopLevelNames() { Debug.Assert(!String.IsNullOrEmpty(this.Name), "RoleName should never be empty"); IRelationship relationship = (IRelationship)this.ParentElement.ParentElement; if (!relationship.TryGetEnd(this.Name, out _end)) { AddError(ErrorCode.InvalidRoleInRelationshipConstraint, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.InvalidEndRoleInRelationshipConstraint(this.Name, relationship.Name)); return; } // we are gauranteed that the _end has gone through ResolveNames, but // we are not gauranteed that it was successful if (_end.Type == null) { // an error has already been added for this return; } } internal override void Validate() { base.Validate(); // we can't resolve these names until validate because they will reference properties and types // that may not be resolved when this objects ResolveNames gets called Debug.Assert(_roleProperties != null, "xsd should have verified that there should be atleast one property ref element in referential role element"); foreach (PropertyRefElement property in _roleProperties) { if (!property.ResolveNames((SchemaEntityType)_end.Type)) { AddError(ErrorCode.InvalidPropertyInRelationshipConstraint, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.InvalidPropertyInRelationshipConstraint( property.Name, this.Name)); } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Diagnostics; using System.Xml; using System.Data; using System.Data.Metadata.Edm; namespace System.Data.EntityModel.SchemaObjectModel { ////// Represents an role element in referential constraint element. /// internal sealed class ReferentialConstraintRoleElement : SchemaElement { private List_roleProperties; private IRelationshipEnd _end; /// /// Constructs an EntityContainerAssociationSetEnd /// /// Reference to the schema element. public ReferentialConstraintRoleElement(ReferentialConstraint parentElement) : base( parentElement ) { } public IListRoleProperties { get { if (_roleProperties == null) { _roleProperties = new List (); } return _roleProperties; } } public IRelationshipEnd End { get { return _end; } } protected override bool HandleElement(XmlReader reader) { if (base.HandleElement(reader)) { return true; } else if (CanHandleElement(reader, XmlConstants.PropertyRef)) { HandlePropertyRefElement(reader); return true; } return false; } protected override bool HandleAttribute(XmlReader reader) { if (CanHandleAttribute(reader, XmlConstants.Role)) { HandleRoleAttribute(reader); return true; } return false; } /// /// /// /// private void HandlePropertyRefElement(XmlReader reader) { PropertyRefElement property = new PropertyRefElement(ParentElement); property.Parse(reader); this.RoleProperties.Add(property); } private void HandleRoleAttribute(XmlReader reader) { string roleName; Utils.GetString(Schema, reader, out roleName); this.Name = roleName; } ////// Used during the resolve phase to resolve the type name to the object that represents that type /// internal override void ResolveTopLevelNames() { Debug.Assert(!String.IsNullOrEmpty(this.Name), "RoleName should never be empty"); IRelationship relationship = (IRelationship)this.ParentElement.ParentElement; if (!relationship.TryGetEnd(this.Name, out _end)) { AddError(ErrorCode.InvalidRoleInRelationshipConstraint, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.InvalidEndRoleInRelationshipConstraint(this.Name, relationship.Name)); return; } // we are gauranteed that the _end has gone through ResolveNames, but // we are not gauranteed that it was successful if (_end.Type == null) { // an error has already been added for this return; } } internal override void Validate() { base.Validate(); // we can't resolve these names until validate because they will reference properties and types // that may not be resolved when this objects ResolveNames gets called Debug.Assert(_roleProperties != null, "xsd should have verified that there should be atleast one property ref element in referential role element"); foreach (PropertyRefElement property in _roleProperties) { if (!property.ResolveNames((SchemaEntityType)_end.Type)) { AddError(ErrorCode.InvalidPropertyInRelationshipConstraint, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.InvalidPropertyInRelationshipConstraint( property.Name, this.Name)); } } } } } // 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
- activationcontext.cs
- BoundField.cs
- UrlMappingsModule.cs
- WinEventQueueItem.cs
- ColumnCollectionEditor.cs
- CardSpaceException.cs
- EmptyControlCollection.cs
- SelectingProviderEventArgs.cs
- XmlSchemaSimpleType.cs
- EventEntry.cs
- ExceptionHandlers.cs
- SizeChangedEventArgs.cs
- Sequence.cs
- Vector.cs
- PageTheme.cs
- WebPartZoneBase.cs
- ObjectResult.cs
- HandlerFactoryWrapper.cs
- DbConnectionHelper.cs
- SystemInformation.cs
- HealthMonitoringSection.cs
- OperatingSystem.cs
- COM2ComponentEditor.cs
- ObjectDataSourceEventArgs.cs
- Win32MouseDevice.cs
- ChangePassword.cs
- Container.cs
- MsmqIntegrationChannelFactory.cs
- XmlSchemaAttributeGroup.cs
- EventTrigger.cs
- DiscreteKeyFrames.cs
- JapaneseCalendar.cs
- WebEventCodes.cs
- SimpleFileLog.cs
- DataSourceSerializationException.cs
- DictionaryManager.cs
- AnimatedTypeHelpers.cs
- SetterBase.cs
- MdiWindowListStrip.cs
- XmlNamedNodeMap.cs
- UnsafeNativeMethods.cs
- ProtectedConfigurationProviderCollection.cs
- InheritanceContextChangedEventManager.cs
- ProxyHelper.cs
- PositiveTimeSpanValidator.cs
- BaseAsyncResult.cs
- GridPattern.cs
- ImageField.cs
- BufferedOutputStream.cs
- XsltSettings.cs
- Rijndael.cs
- SharedPerformanceCounter.cs
- WebPartHelpVerb.cs
- Point3DKeyFrameCollection.cs
- UIElementHelper.cs
- PeerName.cs
- ConstraintStruct.cs
- List.cs
- Rect3D.cs
- ExceptQueryOperator.cs
- ExpressionPrinter.cs
- RegexCapture.cs
- HtmlControlPersistable.cs
- ManagementNamedValueCollection.cs
- CompilerState.cs
- AccessDataSource.cs
- RegistrationServices.cs
- TabItemWrapperAutomationPeer.cs
- DefaultProxySection.cs
- InputLangChangeEvent.cs
- CollectionView.cs
- DbDataReader.cs
- DecimalFormatter.cs
- CultureSpecificStringDictionary.cs
- arabicshape.cs
- PowerEase.cs
- SqlBulkCopyColumnMappingCollection.cs
- WindowsAuthenticationModule.cs
- DoubleLinkListEnumerator.cs
- EndpointAddressElementBase.cs
- LocationSectionRecord.cs
- Cursor.cs
- XmlDocument.cs
- documentsequencetextpointer.cs
- CompilerCollection.cs
- CellLabel.cs
- DataGridViewRowEventArgs.cs
- EventListenerClientSide.cs
- TypeSystem.cs
- Vector.cs
- FrameworkTextComposition.cs
- NullableIntAverageAggregationOperator.cs
- FormsAuthenticationEventArgs.cs
- MsmqIntegrationProcessProtocolHandler.cs
- DataSourceHelper.cs
- XmlIlGenerator.cs
- BamlRecordHelper.cs
- ProfileProvider.cs
- FigureHelper.cs
- OracleConnectionStringBuilder.cs