Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Metadata / Edm / EntityContainer.cs / 1305376 / EntityContainer.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Data.Common; using System.Text; using System.Diagnostics; namespace System.Data.Metadata.Edm { ////// Class for representing an entity container /// public sealed class EntityContainer : GlobalItem { #region Constructors ////// The constructor for constructing the EntityContainer object with the name, namespaceName, and version. /// /// The name of this entity container /// dataSpace in which this entity container belongs to ///Thrown if the name argument is null ///Thrown if the name argument is empty string internal EntityContainer(string name, DataSpace dataSpace) { EntityUtil.CheckStringArgument(name, "name"); _name = name; this.DataSpace = dataSpace; _baseEntitySets = new ReadOnlyMetadataCollection(new EntitySetBaseCollection(this)); _functionImports = new ReadOnlyMetadataCollection (new MetadataCollection ()); } #endregion #region Fields private readonly string _name; private readonly ReadOnlyMetadataCollection _baseEntitySets; private readonly ReadOnlyMetadataCollection _functionImports; #endregion #region Properties /// /// Returns the kind of the type /// public override BuiltInTypeKind BuiltInTypeKind { get { return BuiltInTypeKind.EntityContainer; } } ////// Gets the identity for this item as a string /// internal override string Identity { get { return this.Name; } } ////// Get the name of this EntityContainer object /// [MetadataProperty(PrimitiveTypeKind.String, false)] public String Name { get { return _name; } } ////// Gets the collection of entity sets /// [MetadataProperty(BuiltInTypeKind.EntitySetBase, true)] public ReadOnlyMetadataCollectionBaseEntitySets { get { return _baseEntitySets; } } /// /// Gets the collection of function imports for this entity container /// [MetadataProperty(BuiltInTypeKind.EdmFunction, true)] public ReadOnlyMetadataCollectionFunctionImports { get { return _functionImports; } } #endregion #region Methods /// /// 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.BaseEntitySets.Source.SetReadOnly(); this.FunctionImports.Source.SetReadOnly(); } } ////// Get the entity set with the given name /// /// name of the entity set to look up for /// true if you want to do a case-insensitive lookup ///public EntitySet GetEntitySetByName(string name, bool ignoreCase) { EntitySet entitySet = (BaseEntitySets.GetValue(name, ignoreCase) as EntitySet); if (null != entitySet) { return entitySet; } throw EntityUtil.InvalidEntitySetName(name); } /// /// Get the entity set with the given name or return null if not found /// /// name of the entity set to look up for /// true if you want to do a case-insensitive lookup /// out parameter that will contain the result ////// if name argument is null public bool TryGetEntitySetByName(string name, bool ignoreCase, out EntitySet entitySet) { EntityUtil.CheckArgumentNull(name, "name"); EntitySetBase baseEntitySet = null; entitySet = null; if (this.BaseEntitySets.TryGetValue(name, ignoreCase, out baseEntitySet)) { if (Helper.IsEntitySet(baseEntitySet)) { entitySet = (EntitySet)baseEntitySet; return true; } } return false; } ////// Get the relationship set with the given name /// /// name of the relationship set to look up for /// true if you want to do a case-insensitive lookup ///public RelationshipSet GetRelationshipSetByName(string name, bool ignoreCase) { RelationshipSet relationshipSet; if (!this.TryGetRelationshipSetByName(name, ignoreCase, out relationshipSet)) { throw EntityUtil.InvalidRelationshipSetName(name); } return relationshipSet; } /// /// Get the relationship set with the given name /// /// name of the relationship set to look up for /// true if you want to do a case-insensitive lookup /// out parameter that will have the result ////// if name argument is null public bool TryGetRelationshipSetByName(string name, bool ignoreCase, out RelationshipSet relationshipSet) { EntityUtil.CheckArgumentNull(name, "name"); EntitySetBase baseEntitySet = null; relationshipSet = null; if (this.BaseEntitySets.TryGetValue(name, ignoreCase, out baseEntitySet)) { if (Helper.IsRelationshipSet(baseEntitySet)) { relationshipSet = (RelationshipSet)baseEntitySet; return true; } } return false; } ////// Overriding System.Object.ToString to provide better String representation /// for this type. /// public override string ToString() { return Name; } internal void AddEntitySetBase(EntitySetBase entitySetBase) { _baseEntitySets.Source.Add(entitySetBase); } internal void AddFunctionImport(EdmFunction function) { Debug.Assert(null != function); _functionImports.Source.Add(function); } #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
- ChannelManagerBase.cs
- XPathDocumentIterator.cs
- SqlExpressionNullability.cs
- MaskedTextBoxTextEditor.cs
- UserPreferenceChangedEventArgs.cs
- XmlCDATASection.cs
- WriteableOnDemandPackagePart.cs
- SiteMembershipCondition.cs
- XmlSchemaAnnotated.cs
- CharEnumerator.cs
- DbSourceCommand.cs
- XmlNavigatorFilter.cs
- ControlOperationInvoker.cs
- HotCommands.cs
- FieldAccessException.cs
- MessageEnumerator.cs
- XMLSchema.cs
- EarlyBoundInfo.cs
- CharacterMetrics.cs
- _IPv4Address.cs
- HitTestParameters.cs
- AssemblyCache.cs
- DeclarativeCatalogPart.cs
- activationcontext.cs
- FontStyle.cs
- SmtpFailedRecipientException.cs
- DisplayToken.cs
- XmlUnspecifiedAttribute.cs
- SharedUtils.cs
- Ops.cs
- FactoryMaker.cs
- JapaneseCalendar.cs
- CompileXomlTask.cs
- QuotaThrottle.cs
- XmlCharCheckingWriter.cs
- CurrencyManager.cs
- AppDomain.cs
- IdentifierService.cs
- FormViewUpdateEventArgs.cs
- AdjustableArrowCap.cs
- BaseProcessor.cs
- Calendar.cs
- EventBindingService.cs
- RequestCacheManager.cs
- SafeNativeMethods.cs
- DbConnectionPoolGroup.cs
- CodeNamespaceImport.cs
- PersistenceProvider.cs
- TextParagraph.cs
- XmlArrayAttribute.cs
- ValueUtilsSmi.cs
- LocatorGroup.cs
- MatcherBuilder.cs
- TraceContext.cs
- DataObjectAttribute.cs
- BaseCollection.cs
- XmlSchemaValidator.cs
- DataRowChangeEvent.cs
- DataControlReference.cs
- SqlClientWrapperSmiStreamChars.cs
- ImageKeyConverter.cs
- RightsManagementInformation.cs
- EpmAttributeNameBuilder.cs
- ObjRef.cs
- ResourceCodeDomSerializer.cs
- MethodBody.cs
- Int32CollectionConverter.cs
- ThumbAutomationPeer.cs
- ElementFactory.cs
- SchemaElementLookUpTableEnumerator.cs
- EdmComplexTypeAttribute.cs
- ColorAnimation.cs
- SecurityResources.cs
- IDReferencePropertyAttribute.cs
- BindableTemplateBuilder.cs
- ByteRangeDownloader.cs
- FtpCachePolicyElement.cs
- SafeCoTaskMem.cs
- SQLBinary.cs
- PrePrepareMethodAttribute.cs
- XmlUtil.cs
- LayoutSettings.cs
- MarginCollapsingState.cs
- StringOutput.cs
- DataGridViewHeaderCell.cs
- MatrixCamera.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- DynamicPropertyReader.cs
- AsyncCompletedEventArgs.cs
- OpenFileDialog.cs
- ControlCachePolicy.cs
- OpCopier.cs
- ReaderWriterLockWrapper.cs
- PointHitTestParameters.cs
- SpecialFolderEnumConverter.cs
- HttpApplicationFactory.cs
- oledbconnectionstring.cs
- UnsafeNativeMethods.cs
- PeerName.cs
- QuestionEventArgs.cs