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
- DbSetClause.cs
- AnonymousIdentificationSection.cs
- SafeRightsManagementSessionHandle.cs
- Automation.cs
- dtdvalidator.cs
- TouchEventArgs.cs
- wgx_sdk_version.cs
- DocumentViewerBase.cs
- XPathNavigatorKeyComparer.cs
- XmlNamespaceDeclarationsAttribute.cs
- SessionStateModule.cs
- SubpageParagraph.cs
- TextFormatter.cs
- FixedSOMContainer.cs
- NativeMethods.cs
- PageTheme.cs
- UnsafeNetInfoNativeMethods.cs
- QuaternionRotation3D.cs
- XsltCompileContext.cs
- IdentityNotMappedException.cs
- PathStreamGeometryContext.cs
- ZipIOExtraFieldZip64Element.cs
- mediaeventargs.cs
- ExpressionBindingCollection.cs
- AsymmetricAlgorithm.cs
- HitTestWithPointDrawingContextWalker.cs
- TextWriterTraceListener.cs
- EventLogEntryCollection.cs
- SmiMetaData.cs
- XmlAggregates.cs
- SocketAddress.cs
- StrokeNodeEnumerator.cs
- MonthCalendar.cs
- TransactionManager.cs
- DataViewSettingCollection.cs
- ToggleProviderWrapper.cs
- TextBoxRenderer.cs
- Point4DValueSerializer.cs
- UntrustedRecipientException.cs
- FlowPosition.cs
- Pair.cs
- NotifyInputEventArgs.cs
- SendingRequestEventArgs.cs
- MobileControl.cs
- Parameter.cs
- FastEncoder.cs
- TransformDescriptor.cs
- RenamedEventArgs.cs
- FixUp.cs
- RootProjectionNode.cs
- NativeStructs.cs
- Ref.cs
- BaseCodeDomTreeGenerator.cs
- ExpandedProjectionNode.cs
- XmlAttribute.cs
- SchemaObjectWriter.cs
- TextAutomationPeer.cs
- BindingNavigatorDesigner.cs
- StylusCollection.cs
- SpeakProgressEventArgs.cs
- ValidatingCollection.cs
- PrimaryKeyTypeConverter.cs
- BamlLocalizabilityResolver.cs
- TextAnchor.cs
- DriveInfo.cs
- ConsumerConnectionPointCollection.cs
- Viewport2DVisual3D.cs
- DataGridColumnsPage.cs
- ProfilePropertySettings.cs
- SqlServices.cs
- CustomBindingElement.cs
- StackOverflowException.cs
- StreamGeometry.cs
- CancellationToken.cs
- _UncName.cs
- EnvelopedPkcs7.cs
- TreeViewItemAutomationPeer.cs
- TemplateControlParser.cs
- LingerOption.cs
- ReflectEventDescriptor.cs
- ArrayHelper.cs
- DetailsViewInsertedEventArgs.cs
- ChangeProcessor.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- XmlBinaryReader.cs
- ExpressionBuilderCollection.cs
- EmptyEnumerable.cs
- ActivityContext.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- DataErrorValidationRule.cs
- XmlSchemaSet.cs
- MatrixUtil.cs
- ClientTarget.cs
- CommandTreeTypeHelper.cs
- coordinatorscratchpad.cs
- HtmlDocument.cs
- Annotation.cs
- DebugView.cs
- InputMethod.cs
- RequestCachingSection.cs