Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / EntityModel / SchemaObjectModel / ReferentialConstraintRoleElement.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebPartChrome.cs
- DrawingContextDrawingContextWalker.cs
- IIS7UserPrincipal.cs
- TableLayout.cs
- CompositeDispatchFormatter.cs
- LinearKeyFrames.cs
- ConfigurationSectionGroupCollection.cs
- UpdateException.cs
- RepeatBehaviorConverter.cs
- CodeTypeReferenceCollection.cs
- SafeHandles.cs
- InputLanguageProfileNotifySink.cs
- XmlCharType.cs
- CallTemplateAction.cs
- ClientTarget.cs
- DbConnectionHelper.cs
- PersonalizationDictionary.cs
- ButtonBaseAdapter.cs
- WebColorConverter.cs
- SafeNativeMethodsOther.cs
- RuleAttributes.cs
- SecuritySessionSecurityTokenAuthenticator.cs
- CqlGenerator.cs
- ExtenderProvidedPropertyAttribute.cs
- FixedTextView.cs
- ConsoleTraceListener.cs
- ToolStripContainer.cs
- RelationshipEndCollection.cs
- WindowsStartMenu.cs
- PseudoWebRequest.cs
- XmlSchemaParticle.cs
- ECDsa.cs
- DataSourceCacheDurationConverter.cs
- Sentence.cs
- PanelStyle.cs
- SQLResource.cs
- Main.cs
- Registry.cs
- TreeViewImageIndexConverter.cs
- XmlValidatingReaderImpl.cs
- MessageVersion.cs
- SByteConverter.cs
- RadioButton.cs
- StdValidatorsAndConverters.cs
- OutputScope.cs
- _SecureChannel.cs
- SerializationInfoEnumerator.cs
- ExecutedRoutedEventArgs.cs
- XmlRawWriterWrapper.cs
- Command.cs
- RoutingExtension.cs
- CornerRadiusConverter.cs
- XPathScanner.cs
- TemplateKey.cs
- QilBinary.cs
- ResXDataNode.cs
- NativeMethods.cs
- wgx_exports.cs
- UrlPath.cs
- TemplateBuilder.cs
- DeferredSelectedIndexReference.cs
- ClientFormsIdentity.cs
- ElementUtil.cs
- SqlExpressionNullability.cs
- filewebresponse.cs
- EntityRecordInfo.cs
- X509RecipientCertificateServiceElement.cs
- GcSettings.cs
- ImageFormat.cs
- MessageDispatch.cs
- DebugView.cs
- UpdateCommandGenerator.cs
- ToolbarAUtomationPeer.cs
- PropertyChangedEventManager.cs
- FixedPageAutomationPeer.cs
- ZoneButton.cs
- StrokeCollection.cs
- parserscommon.cs
- UdpDiscoveryMessageFilter.cs
- Closure.cs
- XamlReader.cs
- WebPartTracker.cs
- XsdCachingReader.cs
- SystemIPGlobalStatistics.cs
- CodeConstructor.cs
- Int32Converter.cs
- NavigationPropertySingletonExpression.cs
- RevocationPoint.cs
- SqlProcedureAttribute.cs
- MILUtilities.cs
- regiisutil.cs
- NullableDecimalAverageAggregationOperator.cs
- QueryParameter.cs
- CrossAppDomainChannel.cs
- RenderData.cs
- FormatterConverter.cs
- CompiledQueryCacheEntry.cs
- Module.cs
- SimpleLine.cs
- NullRuntimeConfig.cs