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
- MainMenu.cs
- SiteMapDataSource.cs
- GridErrorDlg.cs
- DesignerAttribute.cs
- PrintPreviewDialog.cs
- FormViewPageEventArgs.cs
- Mappings.cs
- Visual3D.cs
- WsdlInspector.cs
- BlockUIContainer.cs
- ChangeConflicts.cs
- DataGridViewCellFormattingEventArgs.cs
- SymmetricKeyWrap.cs
- FlowchartDesigner.Helpers.cs
- LineProperties.cs
- SEHException.cs
- InstanceKeyNotReadyException.cs
- LiteralTextParser.cs
- WebPartConnectVerb.cs
- ElapsedEventArgs.cs
- BroadcastEventHelper.cs
- TableHeaderCell.cs
- EntityViewGenerator.cs
- LayoutTableCell.cs
- ServiceDurableInstanceContextProvider.cs
- WindowInteractionStateTracker.cs
- TextBoxRenderer.cs
- HttpFileCollection.cs
- activationcontext.cs
- ToolboxComponentsCreatedEventArgs.cs
- RuleSettingsCollection.cs
- HttpModulesSection.cs
- ExceptionHandlersDesigner.cs
- ButtonRenderer.cs
- GridItemPatternIdentifiers.cs
- XmlChoiceIdentifierAttribute.cs
- Expander.cs
- ShapingEngine.cs
- RenderDataDrawingContext.cs
- CssTextWriter.cs
- FormsAuthenticationEventArgs.cs
- DataBoundLiteralControl.cs
- TreeView.cs
- DocumentViewerBaseAutomationPeer.cs
- TypedColumnHandler.cs
- Regex.cs
- DataGridViewRowCollection.cs
- PrivilegeNotHeldException.cs
- SafeHandle.cs
- ComponentManagerBroker.cs
- EventLogEntryCollection.cs
- EntityDesignPluralizationHandler.cs
- QilValidationVisitor.cs
- PackageRelationshipSelector.cs
- ViewStateException.cs
- SymbolDocumentGenerator.cs
- _AcceptOverlappedAsyncResult.cs
- HtmlInputCheckBox.cs
- ReaderWriterLockWrapper.cs
- WebPartManagerInternals.cs
- DataSourceHelper.cs
- PlacementWorkspace.cs
- Tokenizer.cs
- Triplet.cs
- CellPartitioner.cs
- WebPartHeaderCloseVerb.cs
- Separator.cs
- RbTree.cs
- SizeIndependentAnimationStorage.cs
- URLAttribute.cs
- DynamicExpression.cs
- DataObject.cs
- SizeFConverter.cs
- PersonalizablePropertyEntry.cs
- StrokeSerializer.cs
- ImagingCache.cs
- TextComposition.cs
- TreeNodeEventArgs.cs
- InlineCollection.cs
- SqlEnums.cs
- ListView.cs
- ChineseLunisolarCalendar.cs
- XmlBindingWorker.cs
- DataTableReader.cs
- compensatingcollection.cs
- XmlSchemaAnnotation.cs
- FormViewInsertEventArgs.cs
- TdsParserStaticMethods.cs
- BaseParagraph.cs
- PerformanceCounterPermissionEntry.cs
- TextTreeUndo.cs
- StructuralCache.cs
- DbParameterHelper.cs
- XmlDesigner.cs
- DataGridViewTextBoxEditingControl.cs
- DataGridViewRowHeaderCell.cs
- WindowsGraphics2.cs
- FilterableAttribute.cs
- EmbeddedMailObject.cs
- keycontainerpermission.cs