Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Metadata / Edm / ReferentialConstraint.cs / 1305376 / ReferentialConstraint.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data.Common; namespace System.Data.Metadata.Edm { ////// This class describes referential constraint on the relationships /// public sealed class ReferentialConstraint : MetadataItem { #region Constructors ////// Constructs a new constraint on the relationship /// /// role from which the relationship originates /// role to which the relationship is linked/targeted to /// properties on entity type of from role which take part in the constraint /// properties on entity type of to role which take part in the constraint ///Argument Null exception if any of the arguments is null internal ReferentialConstraint(RelationshipEndMember fromRole, RelationshipEndMember toRole, IEnumerablefromProperties, IEnumerable toProperties) { _fromRole = EntityUtil.GenericCheckArgumentNull(fromRole, "fromRole"); _toRole = EntityUtil.GenericCheckArgumentNull(toRole, "toRole"); _fromProperties = new ReadOnlyMetadataCollection (new MetadataCollection ( EntityUtil.GenericCheckArgumentNull(fromProperties, "fromProperties"))); _toProperties = new ReadOnlyMetadataCollection (new MetadataCollection ( EntityUtil.GenericCheckArgumentNull(toProperties, "toProperties"))); } #endregion #region Fields private RelationshipEndMember _fromRole; private RelationshipEndMember _toRole; private readonly ReadOnlyMetadataCollection _fromProperties; private readonly ReadOnlyMetadataCollection _toProperties; #endregion #region Properties /// /// Returns the kind of the type /// public override BuiltInTypeKind BuiltInTypeKind { get { return BuiltInTypeKind.ReferentialConstraint; } } ////// Returns the identity for this constraint /// internal override string Identity { get { return this.FromRole.Name + "_" + this.ToRole.Name; } } ////// Returns the FromRole which takes part in this referential constraint /// ///Thrown if value passed into setter is null ///Thrown if the ReferentialConstraint instance is in ReadOnly state [MetadataProperty(BuiltInTypeKind.RelationshipEndMember, false)] public RelationshipEndMember FromRole { get { return _fromRole; } } ////// Returns the ToRole which takes part in this referential constraint /// ///Thrown if value passed into setter is null ///Thrown if the ReferentialConstraint instance is in ReadOnly state [MetadataProperty(BuiltInTypeKind.RelationshipEndMember, false)] public RelationshipEndMember ToRole { get { return _toRole; } } ////// Returns the collection of properties on the from role on which the constraint is defined on /// [MetadataProperty(BuiltInTypeKind.EdmProperty, true)] public ReadOnlyMetadataCollectionFromProperties { get { return _fromProperties; } } /// /// Returns the collection of properties on the ToRole on whose value the constraint is defined on /// [MetadataProperty(BuiltInTypeKind.EdmProperty, true)] public ReadOnlyMetadataCollectionToProperties { get { return _toProperties; } } #endregion #region Methods /// /// Overriding System.Object.ToString to provide better String representation /// ofr this type. /// public override string ToString() { return this.FromRole.Name + "_" + this.ToRole.Name; } ////// Sets this item to be readonly, once this is set, the item will never be writable again. /// internal override void SetReadOnly() { if (!IsReadOnly) { base.SetReadOnly(); RelationshipEndMember fromRole = FromRole; if (fromRole != null) { fromRole.SetReadOnly(); } RelationshipEndMember toRole = ToRole; if (toRole != null) { toRole.SetReadOnly(); } this.FromProperties.Source.SetReadOnly(); this.ToProperties.Source.SetReadOnly(); } } #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
- RowSpanVector.cs
- SmtpDigestAuthenticationModule.cs
- FloaterParagraph.cs
- WebExceptionStatus.cs
- ObjectDataSourceDisposingEventArgs.cs
- LoadMessageLogger.cs
- Walker.cs
- TemplatePartAttribute.cs
- QilChoice.cs
- RtfControls.cs
- PropertyPushdownHelper.cs
- JsonServiceDocumentSerializer.cs
- AppDomainManager.cs
- DbgCompiler.cs
- ExtendedPropertiesHandler.cs
- XmlNamespaceManager.cs
- FileDetails.cs
- DataKeyCollection.cs
- StructuredTypeInfo.cs
- AdornerLayer.cs
- XmlSchemaValidator.cs
- StringCollectionMarkupSerializer.cs
- EmbeddedMailObjectsCollection.cs
- QueryableDataSourceView.cs
- counter.cs
- ToolTipAutomationPeer.cs
- NotifyInputEventArgs.cs
- ReflectionPermission.cs
- Deserializer.cs
- AnnotationHelper.cs
- DesignConnection.cs
- RootBrowserWindowAutomationPeer.cs
- SqlNodeAnnotations.cs
- LocalizabilityAttribute.cs
- StyleReferenceConverter.cs
- VirtualPathUtility.cs
- XmlSchemaSimpleContent.cs
- GuidelineCollection.cs
- ToolStripItemCollection.cs
- QueryValue.cs
- ParameterBuilder.cs
- DataServiceException.cs
- HostingEnvironmentWrapper.cs
- WCFBuildProvider.cs
- SspiHelper.cs
- BamlResourceDeserializer.cs
- OutputScopeManager.cs
- QilTypeChecker.cs
- DetailsViewCommandEventArgs.cs
- ChannelHandler.cs
- NativeMethods.cs
- XsltLibrary.cs
- HwndSource.cs
- DataGridViewTopLeftHeaderCell.cs
- DataServiceQueryOfT.cs
- XmlNamespaceDeclarationsAttribute.cs
- GeneralTransform.cs
- Int32Rect.cs
- _SpnDictionary.cs
- Int64KeyFrameCollection.cs
- XmlSchemaAttribute.cs
- EmbossBitmapEffect.cs
- AnnotationElement.cs
- ClientScriptManager.cs
- NativeMethods.cs
- RegexRunner.cs
- CodeDomDecompiler.cs
- AutoSizeComboBox.cs
- WSFederationHttpBinding.cs
- QueryGeneratorBase.cs
- HwndSourceKeyboardInputSite.cs
- UnitControl.cs
- RelOps.cs
- RecommendedAsConfigurableAttribute.cs
- EmptyImpersonationContext.cs
- TcpStreams.cs
- CleanUpVirtualizedItemEventArgs.cs
- FileLoadException.cs
- EntityDataSourceSelectingEventArgs.cs
- ObjectReaderCompiler.cs
- StickyNoteAnnotations.cs
- HtmlTextArea.cs
- EmptyCollection.cs
- AsynchronousChannel.cs
- DrawListViewItemEventArgs.cs
- SingleKeyFrameCollection.cs
- BinaryObjectReader.cs
- XmlCharacterData.cs
- GridViewRowCollection.cs
- FontInfo.cs
- WebPartManagerInternals.cs
- BoundConstants.cs
- ManualResetEvent.cs
- TimeSpanStorage.cs
- ErrorActivity.cs
- LocationUpdates.cs
- TextBlock.cs
- StateMachineWorkflowDesigner.cs
- ClientUtils.cs
- Validator.cs