Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / EntityModel / SchemaObjectModel / NavigationProperty.cs / 2 / NavigationProperty.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Xml; using System.Data; using System.Data.Metadata.Edm; namespace System.Data.EntityModel.SchemaObjectModel { ////// Summary description for Association. /// [System.Diagnostics.DebuggerDisplay("Name={Name}, Relationship={_unresolvedRelationshipName}, FromRole={_unresolvedFromEndRole}, ToRole={_unresolvedToEndRole}")] internal sealed class NavigationProperty : Property { private string _unresolvedFromEndRole = null; private string _unresolvedToEndRole = null; private string _unresolvedRelationshipName = null; private IRelationshipEnd _fromEnd = null; private IRelationshipEnd _toEnd = null; private IRelationship _relationship = null; ////// /// /// public NavigationProperty(SchemaEntityType parent) : base(parent) { } ////// /// public new SchemaEntityType ParentElement { get { return base.ParentElement as SchemaEntityType; } } internal IRelationship Relationship { get { return _relationship; } } internal IRelationshipEnd ToEnd { get { return _toEnd; } } internal IRelationshipEnd FromEnd { get { return _fromEnd; } } ////// Gets the Type of the property /// public override SchemaType Type { get { if (_toEnd == null || _toEnd.Type == null) { return null; } return _toEnd.Type; } } protected override bool HandleAttribute(XmlReader reader) { if (base.HandleAttribute(reader)) { return true; } else if (CanHandleAttribute(reader, XmlConstants.Relationship)) { HandleAssociationAttribute(reader); return true; } else if (CanHandleAttribute(reader, XmlConstants.FromRole)) { HandleFromRoleAttribute(reader); return true; } else if (CanHandleAttribute(reader, XmlConstants.ToRole)) { HandleToRoleAttribute(reader); return true; } return false; } ////// /// internal override void ResolveTopLevelNames() { base.ResolveTopLevelNames(); SchemaType element; if (!Schema.ResolveTypeName(this, _unresolvedRelationshipName, out element)) return; _relationship = element as IRelationship; if (_relationship == null) { AddError(ErrorCode.BadNavigationProperty, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.BadNavigationPropertyRelationshipNotRelationship(_unresolvedRelationshipName)); return; } bool foundBothEnds = true; if (!_relationship.TryGetEnd(_unresolvedFromEndRole, out _fromEnd)) { AddError(ErrorCode.BadNavigationProperty, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.BadNavigationPropertyUndefinedRole(_unresolvedFromEndRole, _relationship.FQName)); foundBothEnds = false; } if (!_relationship.TryGetEnd(_unresolvedToEndRole, out _toEnd)) { AddError(ErrorCode.BadNavigationProperty, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.BadNavigationPropertyUndefinedRole(_unresolvedToEndRole, _relationship.FQName)); foundBothEnds = false; } if (foundBothEnds && _fromEnd == _toEnd) { AddError(ErrorCode.BadNavigationProperty, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.BadNavigationPropertyRolesCannotBeTheSame); } } ////// /// internal override void Validate() { base.Validate(); System.Diagnostics.Debug.Assert(_fromEnd != null && _toEnd != null, "FromEnd and ToEnd must not be null in Validate. ResolveNames must have resolved it or added error"); if (_fromEnd.Type != ParentElement) { AddError(ErrorCode.BadNavigationProperty, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.BadNavigationPropertyBadFromRoleType(this.Name, _fromEnd.Type.FQName, _fromEnd.Name, _relationship.FQName, ParentElement.FQName)); } StructuredType type = _toEnd.Type; } #region Private Methods ////// /// /// private void HandleToRoleAttribute(XmlReader reader) { _unresolvedToEndRole = HandleUndottedNameAttribute(reader, _unresolvedToEndRole); } ////// /// /// private void HandleFromRoleAttribute(XmlReader reader) { _unresolvedFromEndRole = HandleUndottedNameAttribute(reader, _unresolvedFromEndRole); } ////// /// /// private void HandleAssociationAttribute(XmlReader reader) { if (_unresolvedRelationshipName != null) { AddAlreadyDefinedError(reader); return; } string association; if (!Utils.GetDottedName(this.Schema, reader, out association)) return; _unresolvedRelationshipName = association; } #endregion } } // 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.Generic; using System.Xml; using System.Data; using System.Data.Metadata.Edm; namespace System.Data.EntityModel.SchemaObjectModel { ////// Summary description for Association. /// [System.Diagnostics.DebuggerDisplay("Name={Name}, Relationship={_unresolvedRelationshipName}, FromRole={_unresolvedFromEndRole}, ToRole={_unresolvedToEndRole}")] internal sealed class NavigationProperty : Property { private string _unresolvedFromEndRole = null; private string _unresolvedToEndRole = null; private string _unresolvedRelationshipName = null; private IRelationshipEnd _fromEnd = null; private IRelationshipEnd _toEnd = null; private IRelationship _relationship = null; ////// /// /// public NavigationProperty(SchemaEntityType parent) : base(parent) { } ////// /// public new SchemaEntityType ParentElement { get { return base.ParentElement as SchemaEntityType; } } internal IRelationship Relationship { get { return _relationship; } } internal IRelationshipEnd ToEnd { get { return _toEnd; } } internal IRelationshipEnd FromEnd { get { return _fromEnd; } } ////// Gets the Type of the property /// public override SchemaType Type { get { if (_toEnd == null || _toEnd.Type == null) { return null; } return _toEnd.Type; } } protected override bool HandleAttribute(XmlReader reader) { if (base.HandleAttribute(reader)) { return true; } else if (CanHandleAttribute(reader, XmlConstants.Relationship)) { HandleAssociationAttribute(reader); return true; } else if (CanHandleAttribute(reader, XmlConstants.FromRole)) { HandleFromRoleAttribute(reader); return true; } else if (CanHandleAttribute(reader, XmlConstants.ToRole)) { HandleToRoleAttribute(reader); return true; } return false; } ////// /// internal override void ResolveTopLevelNames() { base.ResolveTopLevelNames(); SchemaType element; if (!Schema.ResolveTypeName(this, _unresolvedRelationshipName, out element)) return; _relationship = element as IRelationship; if (_relationship == null) { AddError(ErrorCode.BadNavigationProperty, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.BadNavigationPropertyRelationshipNotRelationship(_unresolvedRelationshipName)); return; } bool foundBothEnds = true; if (!_relationship.TryGetEnd(_unresolvedFromEndRole, out _fromEnd)) { AddError(ErrorCode.BadNavigationProperty, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.BadNavigationPropertyUndefinedRole(_unresolvedFromEndRole, _relationship.FQName)); foundBothEnds = false; } if (!_relationship.TryGetEnd(_unresolvedToEndRole, out _toEnd)) { AddError(ErrorCode.BadNavigationProperty, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.BadNavigationPropertyUndefinedRole(_unresolvedToEndRole, _relationship.FQName)); foundBothEnds = false; } if (foundBothEnds && _fromEnd == _toEnd) { AddError(ErrorCode.BadNavigationProperty, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.BadNavigationPropertyRolesCannotBeTheSame); } } ////// /// internal override void Validate() { base.Validate(); System.Diagnostics.Debug.Assert(_fromEnd != null && _toEnd != null, "FromEnd and ToEnd must not be null in Validate. ResolveNames must have resolved it or added error"); if (_fromEnd.Type != ParentElement) { AddError(ErrorCode.BadNavigationProperty, EdmSchemaErrorSeverity.Error, System.Data.Entity.Strings.BadNavigationPropertyBadFromRoleType(this.Name, _fromEnd.Type.FQName, _fromEnd.Name, _relationship.FQName, ParentElement.FQName)); } StructuredType type = _toEnd.Type; } #region Private Methods ////// /// /// private void HandleToRoleAttribute(XmlReader reader) { _unresolvedToEndRole = HandleUndottedNameAttribute(reader, _unresolvedToEndRole); } ////// /// /// private void HandleFromRoleAttribute(XmlReader reader) { _unresolvedFromEndRole = HandleUndottedNameAttribute(reader, _unresolvedFromEndRole); } ////// /// /// private void HandleAssociationAttribute(XmlReader reader) { if (_unresolvedRelationshipName != null) { AddAlreadyDefinedError(reader); return; } string association; if (!Utils.GetDottedName(this.Schema, reader, out association)) return; _unresolvedRelationshipName = association; } #endregion } } // 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
- SequentialWorkflowHeaderFooter.cs
- BinaryObjectWriter.cs
- AccessText.cs
- WebFaultException.cs
- Ref.cs
- ExpressionBinding.cs
- DataGridViewImageColumn.cs
- PerformanceCounterNameAttribute.cs
- TcpChannelHelper.cs
- PositiveTimeSpanValidator.cs
- UriWriter.cs
- SerialPort.cs
- Input.cs
- FontNameConverter.cs
- SystemFonts.cs
- OptionUsage.cs
- RegexRunnerFactory.cs
- Config.cs
- MultiTargetingUtil.cs
- Crc32Helper.cs
- NodeCounter.cs
- DesignConnection.cs
- RadioButton.cs
- RepeaterItem.cs
- MultiSelector.cs
- ListViewItemCollectionEditor.cs
- ChameleonKey.cs
- HandlerBase.cs
- DataServiceEntityAttribute.cs
- XmlWellformedWriter.cs
- CorrelationExtension.cs
- EditingMode.cs
- ChtmlFormAdapter.cs
- EffectiveValueEntry.cs
- XmlFormatWriterGenerator.cs
- RuleSettings.cs
- DrawingAttributes.cs
- InvalidPrinterException.cs
- MatrixAnimationUsingKeyFrames.cs
- FolderLevelBuildProviderCollection.cs
- RepeaterItemCollection.cs
- StructuredTypeEmitter.cs
- BitmapDecoder.cs
- KnownBoxes.cs
- SqlColumnizer.cs
- DesignerActionService.cs
- MonthChangedEventArgs.cs
- UnauthorizedWebPart.cs
- ClientOptions.cs
- FormViewPageEventArgs.cs
- ConditionalBranch.cs
- AuthStoreRoleProvider.cs
- DataRecord.cs
- RequestTimeoutManager.cs
- WebControlsSection.cs
- SqlRowUpdatedEvent.cs
- SHA1CryptoServiceProvider.cs
- SchemaType.cs
- AnimationException.cs
- HeaderUtility.cs
- DataGridViewRow.cs
- Int64AnimationUsingKeyFrames.cs
- GCHandleCookieTable.cs
- FileSystemInfo.cs
- ReturnEventArgs.cs
- TextAdaptor.cs
- ExpressionVisitorHelpers.cs
- BrowserCapabilitiesFactoryBase.cs
- StringComparer.cs
- Decimal.cs
- PreviewPrintController.cs
- CapabilitiesPattern.cs
- DependencyPropertyAttribute.cs
- WebPartManagerInternals.cs
- RC2.cs
- EntityDataSource.cs
- WebPartMenu.cs
- SQLResource.cs
- Context.cs
- JoinQueryOperator.cs
- ConfigXmlAttribute.cs
- ThaiBuddhistCalendar.cs
- MetadataPropertyAttribute.cs
- milexports.cs
- DataTableNewRowEvent.cs
- CustomAssemblyResolver.cs
- AssemblyLoader.cs
- CharKeyFrameCollection.cs
- CertificateReferenceElement.cs
- SchemaTableColumn.cs
- SynchronizationFilter.cs
- ToolTip.cs
- SerializationSectionGroup.cs
- ClientSettingsSection.cs
- WebPartPersonalization.cs
- EdgeModeValidation.cs
- CodeDOMProvider.cs
- MessageDecoder.cs
- ConstructorBuilder.cs
- BindingsCollection.cs