Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Mapping / StorageEntityTypeMapping.cs / 1 / StorageEntityTypeMapping.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....],[....] //--------------------------------------------------------------------- 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. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....],[....] //--------------------------------------------------------------------- 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
- ListViewPagedDataSource.cs
- SpnEndpointIdentity.cs
- InfoCardCryptoHelper.cs
- CommonGetThemePartSize.cs
- IndexedGlyphRun.cs
- TcpServerChannel.cs
- TextElementCollection.cs
- ResolveResponse.cs
- ComboBoxRenderer.cs
- Aggregates.cs
- TableLayoutCellPaintEventArgs.cs
- DataGridViewImageCell.cs
- ClipboardProcessor.cs
- ReversePositionQuery.cs
- XmlReflectionImporter.cs
- CacheMode.cs
- DesignerActionGlyph.cs
- PageCache.cs
- Visitors.cs
- HtmlElement.cs
- Partitioner.cs
- MouseOverProperty.cs
- WinEventHandler.cs
- ScrollChangedEventArgs.cs
- Win32.cs
- ErrorRuntimeConfig.cs
- MimeMapping.cs
- FlowDocumentReader.cs
- securitymgrsite.cs
- AutomationProperties.cs
- ConnectionStringSettingsCollection.cs
- FreezableDefaultValueFactory.cs
- MD5Cng.cs
- LinqDataSourceView.cs
- DataSourceDescriptorCollection.cs
- Random.cs
- MetadataFile.cs
- DynamicResourceExtensionConverter.cs
- Visual3D.cs
- ListViewInsertEventArgs.cs
- QilName.cs
- tabpagecollectioneditor.cs
- WS2007FederationHttpBinding.cs
- FileDialog.cs
- ChoiceConverter.cs
- StreamUpgradeInitiator.cs
- Main.cs
- SqlGatherProducedAliases.cs
- ControlEvent.cs
- TextSegment.cs
- CookieParameter.cs
- XmlSchemaParticle.cs
- MutexSecurity.cs
- UInt64Converter.cs
- OleServicesContext.cs
- HttpContextWrapper.cs
- RoutedCommand.cs
- QilTypeChecker.cs
- LoginCancelEventArgs.cs
- TextTreeUndoUnit.cs
- SvcMapFile.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- UrlParameterWriter.cs
- DataControlCommands.cs
- BamlWriter.cs
- ProtocolsConfiguration.cs
- UDPClient.cs
- _IPv6Address.cs
- UTF8Encoding.cs
- HtmlMeta.cs
- CharKeyFrameCollection.cs
- _FixedSizeReader.cs
- DetailsViewRow.cs
- DataObject.cs
- ScriptingSectionGroup.cs
- ApplicationHost.cs
- SiteMapNodeCollection.cs
- DependencySource.cs
- TypeConverterHelper.cs
- MsmqIntegrationProcessProtocolHandler.cs
- XmlSchemaComplexType.cs
- PropertyToken.cs
- RegisteredScript.cs
- CompatibleIComparer.cs
- XmlWrappingReader.cs
- PersistencePipeline.cs
- DragDrop.cs
- EntityParameter.cs
- SoapEnumAttribute.cs
- OleDbDataReader.cs
- InputScope.cs
- TemplatedControlDesigner.cs
- TreeNodeEventArgs.cs
- WebConfigurationManager.cs
- UriTemplatePathPartiallyEquivalentSet.cs
- MouseButton.cs
- HandleTable.cs
- DataDocumentXPathNavigator.cs
- HashHelper.cs
- TileBrush.cs