Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Mapping / StorageEntityTypeMapping.cs / 1305376 / StorageEntityTypeMapping.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Text; using System.Data.Metadata.Edm; namespace System.Data.Mapping { ////// Mapping metadata for Entity type. /// If an EntitySet represents entities of more than one type, than we will have /// more than one EntityTypeMapping for an EntitySet( For ex : if /// PersonSet Entity extent represents entities of types Person and Customer, /// than we will have two EntityType Mappings under mapping for PersonSet). /// ////// For Example if conceptually you could represent the CS MSL file as following /// --Mapping /// --EntityContainerMapping ( CNorthwind-->SNorthwind ) /// --EntitySetMapping /// --EntityTypeMapping /// --TableMappingFragment /// --EntityKey /// --ScalarPropertyMap /// --ScalarPropertyMap /// --EntityTypeMapping /// --TableMappingFragment /// --EntityKey /// --ScalarPropertyMap /// --ComplexPropertyMap /// --ScalarPropertyMap /// --ScalarProperyMap /// --ScalarPropertyMap /// --AssociationSetMapping /// --AssociationTypeMapping /// --TableMappingFragment /// --EndPropertyMap /// --ScalarPropertyMap /// --ScalarProperyMap /// --EndPropertyMap /// --ScalarPropertyMap /// --EntityContainerMapping ( CMyDatabase-->SMyDatabase ) /// --CompositionSetMapping /// --CompositionTypeMapping /// --TableMappingFragment /// --ParentEntityKey /// --ScalarPropertyMap /// --ScalarPropertyMap /// --EntityKey /// --ScalarPropertyMap /// --ScalarPropertyMap /// --ComplexPropertyMap /// --ScalarPropertyMap /// --ScalarProperyMap /// --ScalarPropertyMap /// This class represents the metadata for all entity Type map elements in the /// above example. Users can access the table mapping fragments under the /// entity type mapping through this class. /// internal class StorageEntityTypeMapping : StorageTypeMapping { #region Constructors ////// Construct the new EntityTypeMapping object. /// /// Set Mapping that contains this Type mapping internal StorageEntityTypeMapping(StorageSetMapping setMapping) : base(setMapping) { } #endregion #region Fields private Dictionarym_entityTypes = new Dictionary (StringComparer.Ordinal); //Types for which the mapping holds true for. private Dictionary m_isOfEntityTypes = new Dictionary (StringComparer.Ordinal); //Types for which the mapping holds true for // not only the type specified but the sub-types of that type as well. #endregion #region Properties /// /// a list of TypeMetadata that this mapping holds true for. /// internal override ReadOnlyCollectionTypes { get { return new List (m_entityTypes.Values).AsReadOnly(); } } /// /// a list of TypeMetadatas for which the mapping holds true for /// not only the type specified but the sub-types of that type as well. /// internal override ReadOnlyCollectionIsOfTypes { get { return new List (m_isOfEntityTypes.Values).AsReadOnly(); } } #endregion #region Methods /// /// Add a Type to the list of types that this mapping is valid for /// internal void AddType(EdmType type) { this.m_entityTypes.Add(type.FullName, type); } ////// Add a Type to the list of Is-Of types that this mapping is valid for /// internal void AddIsOfType(EdmType type) { this.m_isOfEntityTypes.Add(type.FullName, type); } internal EntityType GetContainerType(string memberName) { foreach (EntityType type in m_entityTypes.Values) { if (type.Properties.Contains(memberName)) { return type; } } foreach (EntityType type in m_isOfEntityTypes.Values) { if (type.Properties.Contains(memberName)) { return type; } } return null; } ////// This method is primarily for debugging purposes. /// Will be removed shortly. /// /// internal override void Print(int index) { StorageEntityContainerMapping.GetPrettyPrintString(ref index); StringBuilder sb = new StringBuilder(); sb.Append("EntityTypeMapping"); sb.Append(" "); foreach (EdmType type in m_entityTypes.Values) { sb.Append("Types:"); sb.Append(type.FullName); sb.Append(" "); } foreach (EdmType type in m_isOfEntityTypes.Values) { sb.Append("Is-Of Types:"); sb.Append(type.FullName); sb.Append(" "); } Console.WriteLine(sb.ToString()); foreach (StorageMappingFragment fragment in MappingFragments) { fragment.Print(index + 5); } } #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
- OSEnvironmentHelper.cs
- ImageFormatConverter.cs
- PropertyGrid.cs
- MarkupObject.cs
- RawAppCommandInputReport.cs
- AccessorTable.cs
- Brush.cs
- MediaTimeline.cs
- Matrix3DValueSerializer.cs
- SoapHttpTransportImporter.cs
- ClientTargetCollection.cs
- WindowsPrincipal.cs
- Types.cs
- PasswordRecovery.cs
- WebPartHeaderCloseVerb.cs
- CurrentChangingEventManager.cs
- Visual3D.cs
- TreeSet.cs
- NominalTypeEliminator.cs
- DoubleAnimationUsingKeyFrames.cs
- AsymmetricAlgorithm.cs
- AppSettings.cs
- SubtreeProcessor.cs
- _SslState.cs
- Point3DValueSerializer.cs
- SQLDecimalStorage.cs
- BulletedList.cs
- IndicShape.cs
- ValueOfAction.cs
- XslAst.cs
- RequestCacheEntry.cs
- EditorPart.cs
- Attributes.cs
- ScriptManagerProxy.cs
- SafeCryptoHandles.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- SQLDateTimeStorage.cs
- TemplateControlBuildProvider.cs
- QueryMath.cs
- SelectionEditor.cs
- TypeBuilder.cs
- ReferentialConstraintRoleElement.cs
- WSHttpBinding.cs
- DataSetUtil.cs
- KeyboardEventArgs.cs
- WSSecurityOneDotZeroSendSecurityHeader.cs
- DbCommandDefinition.cs
- MessageBodyDescription.cs
- HiddenField.cs
- JsonServiceDocumentSerializer.cs
- TextTreeObjectNode.cs
- EditorZoneBase.cs
- GotoExpression.cs
- CodeMemberMethod.cs
- Pkcs9Attribute.cs
- WebPartDisplayModeCollection.cs
- CustomValidator.cs
- ApplicationId.cs
- XmlSchemaComplexContentRestriction.cs
- SessionEndedEventArgs.cs
- SessionPageStateSection.cs
- StylusTouchDevice.cs
- Logging.cs
- SystemKeyConverter.cs
- GridViewColumnCollectionChangedEventArgs.cs
- NavigateEvent.cs
- ModelItem.cs
- ImageClickEventArgs.cs
- MemoryPressure.cs
- shaperfactory.cs
- VariantWrapper.cs
- ImageSource.cs
- XamlRtfConverter.cs
- CollectionViewGroupRoot.cs
- BaseCodeDomTreeGenerator.cs
- CellParaClient.cs
- TreeNodeCollection.cs
- PermissionSetEnumerator.cs
- HtmlProps.cs
- util.cs
- HashRepartitionEnumerator.cs
- XmlSchemaAttributeGroup.cs
- WSSecureConversationDec2005.cs
- DocumentSchemaValidator.cs
- StatusBarDesigner.cs
- SqlNamer.cs
- ProviderException.cs
- EventPrivateKey.cs
- BaseConfigurationRecord.cs
- XmlEntityReference.cs
- DesignerUtils.cs
- Crc32Helper.cs
- TextMessageEncodingElement.cs
- ListViewDataItem.cs
- FilterableData.cs
- GlobalProxySelection.cs
- XhtmlBasicCalendarAdapter.cs
- MouseGestureValueSerializer.cs
- RoleServiceManager.cs
- FrugalMap.cs