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
- ColorDialog.cs
- XmlSignatureProperties.cs
- User.cs
- SecurityKeyEntropyMode.cs
- CustomBindingCollectionElement.cs
- HttpWebResponse.cs
- Pair.cs
- DataKeyCollection.cs
- FontWeights.cs
- DynamicQueryableWrapper.cs
- BufferedGraphicsManager.cs
- DropTarget.cs
- PropertyGrid.cs
- RowsCopiedEventArgs.cs
- SmiEventSink_Default.cs
- LineSegment.cs
- ToolbarAUtomationPeer.cs
- TimeSpanStorage.cs
- WebServiceParameterData.cs
- CryptoApi.cs
- ReadOnlyNameValueCollection.cs
- RightsManagementPermission.cs
- Border.cs
- StatusBarPanelClickEvent.cs
- Events.cs
- WinFormsComponentEditor.cs
- DrawingVisualDrawingContext.cs
- TreeNodeStyle.cs
- EntityCommandCompilationException.cs
- ScriptResourceHandler.cs
- MenuRenderer.cs
- WinFormsSpinner.cs
- UnaryOperationBinder.cs
- CqlLexer.cs
- CompilerScopeManager.cs
- _NestedMultipleAsyncResult.cs
- XmlDownloadManager.cs
- SchemaNamespaceManager.cs
- PrinterUnitConvert.cs
- TransactionOptions.cs
- ErrorHandler.cs
- ConnectionStringsExpressionBuilder.cs
- AuthenticationServiceManager.cs
- SerializationObjectManager.cs
- BlurBitmapEffect.cs
- OverflowException.cs
- ShowExpandedMultiValueConverter.cs
- VirtualDirectoryMapping.cs
- Timer.cs
- VerificationAttribute.cs
- SafeNativeMethods.cs
- SimpleHandlerFactory.cs
- HttpResponseInternalWrapper.cs
- UInt32Converter.cs
- SoapTypeAttribute.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- SqlUtils.cs
- BookmarkUndoUnit.cs
- WindowsSlider.cs
- SQLDouble.cs
- GroupBoxDesigner.cs
- DesignTimeParseData.cs
- __Filters.cs
- sqlmetadatafactory.cs
- MaskedTextBox.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- DataGridViewCellStyleConverter.cs
- EntityProxyFactory.cs
- SqlServer2KCompatibilityCheck.cs
- SiteMapNode.cs
- MetabaseSettingsIis7.cs
- EntryPointNotFoundException.cs
- QueryOperationResponseOfT.cs
- ValidatorCompatibilityHelper.cs
- OdbcException.cs
- QilTargetType.cs
- DbMetaDataFactory.cs
- TableItemStyle.cs
- ApplicationCommands.cs
- PrimaryKeyTypeConverter.cs
- XMLDiffLoader.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- Mappings.cs
- DrawItemEvent.cs
- CompressionTransform.cs
- ScriptBehaviorDescriptor.cs
- SecurityDescriptor.cs
- ITextView.cs
- EditCommandColumn.cs
- StrokeFIndices.cs
- PropertyGeneratedEventArgs.cs
- JsonByteArrayDataContract.cs
- BooleanKeyFrameCollection.cs
- HitTestDrawingContextWalker.cs
- EntityDataSource.cs
- CodePageEncoding.cs
- CryptoHandle.cs
- MessagingDescriptionAttribute.cs
- SiteMapDataSource.cs
- AuthenticationService.cs