Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Metadata / Edm / AssociationType.cs / 3 / AssociationType.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Data.Common; using System.Text; using System.Threading; using System.Diagnostics; namespace System.Data.Metadata.Edm { ////// Represents the Edm Association Type /// public sealed class AssociationType : RelationshipType { #region Constructors ////// Initializes a new instance of Association Type with the given name, namespace, version and ends /// /// name of the association type /// namespace of the association type /// version of the association type /// dataSpace in which this AssociationType belongs to ///Thrown if either the name, namespace or version attributes are null internal AssociationType(string name, string namespaceName, DataSpace dataSpace) : base(name, namespaceName, dataSpace) { _referentialConstraints = new ReadOnlyMetadataCollection(new MetadataCollection ()); } #endregion #region Fields private readonly ReadOnlyMetadataCollection _referentialConstraints; private FilteredReadOnlyMetadataCollection _associationEndMembers; #endregion #region Properties /// /// Returns the kind of the type /// public override BuiltInTypeKind BuiltInTypeKind { get { return BuiltInTypeKind.AssociationType; } } ////// Returns the list of ends for this association type /// public ReadOnlyMetadataCollectionAssociationEndMembers { get { Debug.Assert(IsReadOnly, "this is a wrapper around this.Members, don't call it during metadata loading, only call it after the metadata is set to readonly"); if (null == _associationEndMembers) { Interlocked.CompareExchange(ref _associationEndMembers, new FilteredReadOnlyMetadataCollection ( this.Members, Helper.IsAssociationEndMember), null); } return _associationEndMembers; } } /// /// Returns the list of constraints for this association type /// [MetadataProperty(BuiltInTypeKind.ReferentialConstraint, true)] public ReadOnlyMetadataCollectionReferentialConstraints { get { return _referentialConstraints; } } #endregion #region Methods /// /// Validates a EdmMember object to determine if it can be added to this type's /// Members collection. If this method returns without throwing, it is assumed /// the member is valid. /// /// The member to validate ///Thrown if the member is not an AssociationEndMember internal override void ValidateMemberForAdd(EdmMember member) { if (!(member is AssociationEndMember)) { throw EntityUtil.AssociationInvalidMembers(); } } ////// 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(); this.ReferentialConstraints.Source.SetReadOnly(); } } ////// Add the given referential constraint to the collection of referential constraints /// /// internal void AddReferentialConstraint(ReferentialConstraint referentialConstraint) { this.ReferentialConstraints.Source.Add(referentialConstraint); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Data.Common; using System.Text; using System.Threading; using System.Diagnostics; namespace System.Data.Metadata.Edm { ////// Represents the Edm Association Type /// public sealed class AssociationType : RelationshipType { #region Constructors ////// Initializes a new instance of Association Type with the given name, namespace, version and ends /// /// name of the association type /// namespace of the association type /// version of the association type /// dataSpace in which this AssociationType belongs to ///Thrown if either the name, namespace or version attributes are null internal AssociationType(string name, string namespaceName, DataSpace dataSpace) : base(name, namespaceName, dataSpace) { _referentialConstraints = new ReadOnlyMetadataCollection(new MetadataCollection ()); } #endregion #region Fields private readonly ReadOnlyMetadataCollection _referentialConstraints; private FilteredReadOnlyMetadataCollection _associationEndMembers; #endregion #region Properties /// /// Returns the kind of the type /// public override BuiltInTypeKind BuiltInTypeKind { get { return BuiltInTypeKind.AssociationType; } } ////// Returns the list of ends for this association type /// public ReadOnlyMetadataCollectionAssociationEndMembers { get { Debug.Assert(IsReadOnly, "this is a wrapper around this.Members, don't call it during metadata loading, only call it after the metadata is set to readonly"); if (null == _associationEndMembers) { Interlocked.CompareExchange(ref _associationEndMembers, new FilteredReadOnlyMetadataCollection ( this.Members, Helper.IsAssociationEndMember), null); } return _associationEndMembers; } } /// /// Returns the list of constraints for this association type /// [MetadataProperty(BuiltInTypeKind.ReferentialConstraint, true)] public ReadOnlyMetadataCollectionReferentialConstraints { get { return _referentialConstraints; } } #endregion #region Methods /// /// Validates a EdmMember object to determine if it can be added to this type's /// Members collection. If this method returns without throwing, it is assumed /// the member is valid. /// /// The member to validate ///Thrown if the member is not an AssociationEndMember internal override void ValidateMemberForAdd(EdmMember member) { if (!(member is AssociationEndMember)) { throw EntityUtil.AssociationInvalidMembers(); } } ////// 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(); this.ReferentialConstraints.Source.SetReadOnly(); } } ////// Add the given referential constraint to the collection of referential constraints /// /// internal void AddReferentialConstraint(ReferentialConstraint referentialConstraint) { this.ReferentialConstraints.Source.Add(referentialConstraint); } #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
- BitmapImage.cs
- ButtonColumn.cs
- InputScopeConverter.cs
- MultiByteCodec.cs
- Psha1DerivedKeyGeneratorHelper.cs
- Size3D.cs
- Expressions.cs
- Decorator.cs
- HttpRuntimeSection.cs
- PrintDocument.cs
- HijriCalendar.cs
- BidOverLoads.cs
- SpecularMaterial.cs
- ServiceRoute.cs
- BinaryKeyIdentifierClause.cs
- FolderLevelBuildProviderCollection.cs
- MessageVersionConverter.cs
- SqlDataReader.cs
- NumberFormatInfo.cs
- OutputWindow.cs
- BitmapEffectDrawingContent.cs
- GeneralTransform3DTo2D.cs
- ObjectStateManagerMetadata.cs
- DataViewManager.cs
- ScriptingScriptResourceHandlerSection.cs
- SessionPageStateSection.cs
- ToolboxBitmapAttribute.cs
- CacheDependency.cs
- SqlProviderServices.cs
- QuadraticBezierSegment.cs
- NativeActivityContext.cs
- ReflectionUtil.cs
- BeginCreateSecurityTokenRequest.cs
- EventPropertyMap.cs
- DeviceSpecificDesigner.cs
- AnnotationStore.cs
- WebMessageEncodingElement.cs
- TypeInfo.cs
- VisualTreeHelper.cs
- TransformGroup.cs
- TextBoxRenderer.cs
- SafeUserTokenHandle.cs
- PlainXmlSerializer.cs
- XPathAxisIterator.cs
- RouteParser.cs
- PropertyMapper.cs
- X509ServiceCertificateAuthenticationElement.cs
- EnumDataContract.cs
- DynamicResourceExtension.cs
- GridViewRowPresenter.cs
- WaitingCursor.cs
- AttributeUsageAttribute.cs
- DeploymentSection.cs
- GridViewColumnHeader.cs
- Int16Converter.cs
- TemplatedAdorner.cs
- RegexStringValidatorAttribute.cs
- BaseCodePageEncoding.cs
- ResourcePool.cs
- Image.cs
- PlatformCulture.cs
- HuffmanTree.cs
- VariantWrapper.cs
- TypeBuilder.cs
- Speller.cs
- XamlRtfConverter.cs
- EditorZoneBase.cs
- TagNameToTypeMapper.cs
- DateTimeOffset.cs
- StyleHelper.cs
- AuthenticationSection.cs
- UniformGrid.cs
- ProxyWebPartManagerDesigner.cs
- PropertyChangingEventArgs.cs
- CookieParameter.cs
- DataObjectCopyingEventArgs.cs
- FrameworkTemplate.cs
- HttpApplicationFactory.cs
- BufferedStream.cs
- SafeSecurityHelper.cs
- PaintEvent.cs
- NonceCache.cs
- TextEditorThreadLocalStore.cs
- SolidColorBrush.cs
- NullReferenceException.cs
- CustomValidator.cs
- CustomErrorCollection.cs
- OdbcEnvironmentHandle.cs
- CodeSnippetStatement.cs
- XhtmlBasicLabelAdapter.cs
- BoundsDrawingContextWalker.cs
- DataGridViewSelectedRowCollection.cs
- DataShape.cs
- IconBitmapDecoder.cs
- BlockCollection.cs
- XmlSignificantWhitespace.cs
- RoutedPropertyChangedEventArgs.cs
- SqlWebEventProvider.cs
- SafeSerializationManager.cs
- SingleAnimationUsingKeyFrames.cs