Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Mapping / StorageSetMapping.cs / 1 / StorageSetMapping.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; using System.Data.Common.Utils; using System.Diagnostics; using System.Linq; namespace System.Data.Mapping { using Triple = Pair>; /// /// Represents the Mapping metadata for an Extent in ES space. /// ////// For Example if conceptually you could represent the ES MSL file as following /// --Mapping /// --EntityContainerMapping ( CNorthwind-->SNorthwind ) /// --EntitySetMapping /// --EntityTypeMapping /// --TableMappingFragment /// --EntityTypeMapping /// --TableMappingFragment /// --AssociationSetMapping /// --AssociationTypeMapping /// --TableMappingFragment /// --EntityContainerMapping ( CMyDatabase-->SMyDatabase ) /// --CompositionSetMapping /// --CompositionTypeMapping /// This class represents the metadata for all the extent map elements in the /// above example namely EntitySetMapping, AssociationSetMapping and CompositionSetMapping. /// The SetMapping elements that are children of the EntityContainerMapping element /// can be accessed through the properties on this type. /// internal abstract class StorageSetMapping { #region Constructors ////// Construct the new ExtentMapping object. /// /// Extent metadata object /// The EntityContainer mapping that contains this extent mapping internal StorageSetMapping(EntitySetBase extent, StorageEntityContainerMapping entityContainerMapping) { this.m_entityContainerMapping = entityContainerMapping; this.m_extent = extent; this.m_typeMappings = new List(); } #endregion #region Fields private StorageEntityContainerMapping m_entityContainerMapping; //The EntityContainer mapping that contains this extent mapping private EntitySetBase m_extent; //The extent for which this mapping represents. private List m_typeMappings; //Set of type mappings that make up the Set Mapping //Unless this is a EntitySetMapping with inheritance, //you would have a single type mapping per set private string m_queryView; //User defined Query View for the EntitySet private int m_startLineNumber; //Line Number for Set Mapping element start tag private int m_startLinePosition; //Line position for Set Mapping element start tag //Stores type-Specific user-defined QueryViews private Dictionary m_typeSpecificQueryViews = new Dictionary (Triple.PairComparer.Instance); #endregion #region Properties /// /// The set for which this mapping is for /// internal EntitySetBase Set { get { return this.m_extent; } } ////////// TypeMappings that make up this set type. ///// For AssociationSet and CompositionSet there will be one type( atleast thats what ///// we expect as of now). EntitySet could have mappings for multiple Entity types. ///// internal ReadOnlyCollectionTypeMappings { get { return this.m_typeMappings.AsReadOnly(); } } internal StorageEntityContainerMapping EntityContainerMapping { get { return m_entityContainerMapping; } } /// /// Whether the SetMapping has empty content /// Returns true if there no table Mapping fragments /// internal virtual bool HasNoContent { get { if (QueryView != null) { return false; } foreach (StorageTypeMapping typeMap in TypeMappings) { foreach (StorageMappingFragment mapFragment in typeMap.MappingFragments) { foreach (StoragePropertyMapping propertyMap in mapFragment.AllProperties) { return false; } } } return true; } } internal string QueryView { get { return m_queryView; } set { m_queryView = value; } } ////// Line Number in MSL file where the Set Mapping Element's Start Tag is present. /// internal int StartLineNumber { get { return m_startLineNumber; } set { m_startLineNumber = value; } } ////// Line Position in MSL file where the Set Mapping Element's Start Tag is present. /// internal int StartLinePosition { get { return m_startLinePosition; } set { m_startLinePosition = value; } } #endregion #region Methods ////// Add type mapping as a child under this SetMapping /// /// internal void AddTypeMapping(StorageTypeMapping typeMapping) { this.m_typeMappings.Add(typeMapping); } ////// This method is primarily for debugging purposes. /// Will be removed shortly. /// internal abstract void Print(int index); internal bool ContainsTypeSpecificQueryView(Triple key) { return m_typeSpecificQueryViews.ContainsKey(key); } ////// Stores a type-specific user-defiend QueryView so that it can be loaded /// into StorageMappingItemCollection's view cache. /// internal void AddTypeSpecificQueryView(Triple key, string viewString) { Debug.Assert(!m_typeSpecificQueryViews.ContainsKey(key), "Query View already present for the given Key"); m_typeSpecificQueryViews.Add(key, viewString); } internal ReadOnlyCollectionGetTypeSpecificQVKeys() { return new ReadOnlyCollection (m_typeSpecificQueryViews.Keys.ToList()); } internal string GetTypeSpecificQueryView(Triple key) { Debug.Assert(m_typeSpecificQueryViews.ContainsKey(key)); return m_typeSpecificQueryViews[key]; } #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; using System.Data.Common.Utils; using System.Diagnostics; using System.Linq; namespace System.Data.Mapping { using Triple = Pair>; /// /// Represents the Mapping metadata for an Extent in ES space. /// ////// For Example if conceptually you could represent the ES MSL file as following /// --Mapping /// --EntityContainerMapping ( CNorthwind-->SNorthwind ) /// --EntitySetMapping /// --EntityTypeMapping /// --TableMappingFragment /// --EntityTypeMapping /// --TableMappingFragment /// --AssociationSetMapping /// --AssociationTypeMapping /// --TableMappingFragment /// --EntityContainerMapping ( CMyDatabase-->SMyDatabase ) /// --CompositionSetMapping /// --CompositionTypeMapping /// This class represents the metadata for all the extent map elements in the /// above example namely EntitySetMapping, AssociationSetMapping and CompositionSetMapping. /// The SetMapping elements that are children of the EntityContainerMapping element /// can be accessed through the properties on this type. /// internal abstract class StorageSetMapping { #region Constructors ////// Construct the new ExtentMapping object. /// /// Extent metadata object /// The EntityContainer mapping that contains this extent mapping internal StorageSetMapping(EntitySetBase extent, StorageEntityContainerMapping entityContainerMapping) { this.m_entityContainerMapping = entityContainerMapping; this.m_extent = extent; this.m_typeMappings = new List(); } #endregion #region Fields private StorageEntityContainerMapping m_entityContainerMapping; //The EntityContainer mapping that contains this extent mapping private EntitySetBase m_extent; //The extent for which this mapping represents. private List m_typeMappings; //Set of type mappings that make up the Set Mapping //Unless this is a EntitySetMapping with inheritance, //you would have a single type mapping per set private string m_queryView; //User defined Query View for the EntitySet private int m_startLineNumber; //Line Number for Set Mapping element start tag private int m_startLinePosition; //Line position for Set Mapping element start tag //Stores type-Specific user-defined QueryViews private Dictionary m_typeSpecificQueryViews = new Dictionary (Triple.PairComparer.Instance); #endregion #region Properties /// /// The set for which this mapping is for /// internal EntitySetBase Set { get { return this.m_extent; } } ////////// TypeMappings that make up this set type. ///// For AssociationSet and CompositionSet there will be one type( atleast thats what ///// we expect as of now). EntitySet could have mappings for multiple Entity types. ///// internal ReadOnlyCollectionTypeMappings { get { return this.m_typeMappings.AsReadOnly(); } } internal StorageEntityContainerMapping EntityContainerMapping { get { return m_entityContainerMapping; } } /// /// Whether the SetMapping has empty content /// Returns true if there no table Mapping fragments /// internal virtual bool HasNoContent { get { if (QueryView != null) { return false; } foreach (StorageTypeMapping typeMap in TypeMappings) { foreach (StorageMappingFragment mapFragment in typeMap.MappingFragments) { foreach (StoragePropertyMapping propertyMap in mapFragment.AllProperties) { return false; } } } return true; } } internal string QueryView { get { return m_queryView; } set { m_queryView = value; } } ////// Line Number in MSL file where the Set Mapping Element's Start Tag is present. /// internal int StartLineNumber { get { return m_startLineNumber; } set { m_startLineNumber = value; } } ////// Line Position in MSL file where the Set Mapping Element's Start Tag is present. /// internal int StartLinePosition { get { return m_startLinePosition; } set { m_startLinePosition = value; } } #endregion #region Methods ////// Add type mapping as a child under this SetMapping /// /// internal void AddTypeMapping(StorageTypeMapping typeMapping) { this.m_typeMappings.Add(typeMapping); } ////// This method is primarily for debugging purposes. /// Will be removed shortly. /// internal abstract void Print(int index); internal bool ContainsTypeSpecificQueryView(Triple key) { return m_typeSpecificQueryViews.ContainsKey(key); } ////// Stores a type-specific user-defiend QueryView so that it can be loaded /// into StorageMappingItemCollection's view cache. /// internal void AddTypeSpecificQueryView(Triple key, string viewString) { Debug.Assert(!m_typeSpecificQueryViews.ContainsKey(key), "Query View already present for the given Key"); m_typeSpecificQueryViews.Add(key, viewString); } internal ReadOnlyCollectionGetTypeSpecificQVKeys() { return new ReadOnlyCollection (m_typeSpecificQueryViews.Keys.ToList()); } internal string GetTypeSpecificQueryView(Triple key) { Debug.Assert(m_typeSpecificQueryViews.ContainsKey(key)); return m_typeSpecificQueryViews[key]; } #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
- latinshape.cs
- LiteralControl.cs
- Empty.cs
- SubMenuStyleCollection.cs
- DataGridTablesFactory.cs
- StringWriter.cs
- StaticResourceExtension.cs
- XmlIncludeAttribute.cs
- SqlUdtInfo.cs
- Drawing.cs
- GroupItemAutomationPeer.cs
- SQLUtility.cs
- PrtCap_Base.cs
- XmlDictionaryWriter.cs
- TypedTableBase.cs
- ValueProviderWrapper.cs
- BaseHashHelper.cs
- Evidence.cs
- exports.cs
- ListControl.cs
- DataGridViewAutoSizeModeEventArgs.cs
- GB18030Encoding.cs
- ConstructorArgumentAttribute.cs
- KeySplineConverter.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- sitestring.cs
- NCryptNative.cs
- SoapServerMessage.cs
- MenuItemCollection.cs
- ChannelBinding.cs
- Point3DKeyFrameCollection.cs
- CollectionContainer.cs
- ConstrainedDataObject.cs
- RegexInterpreter.cs
- ConfigurationSection.cs
- EpmSyndicationContentSerializer.cs
- ImmutableDispatchRuntime.cs
- Size3DValueSerializer.cs
- BevelBitmapEffect.cs
- TreeNodeClickEventArgs.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- PropertyInformationCollection.cs
- XmlUtf8RawTextWriter.cs
- SystemSounds.cs
- MergeFilterQuery.cs
- SmtpNetworkElement.cs
- DataGridViewLinkCell.cs
- LabelLiteral.cs
- ConnectionPoolManager.cs
- ItemsPanelTemplate.cs
- AuthenticationModuleElement.cs
- FixedHighlight.cs
- ThemeDictionaryExtension.cs
- HostProtectionException.cs
- CompositeScriptReference.cs
- HttpRawResponse.cs
- WindowsStatusBar.cs
- Mappings.cs
- SqlDataSourceEnumerator.cs
- PtsContext.cs
- CommonProperties.cs
- VariableBinder.cs
- SessionStateSection.cs
- SmtpDigestAuthenticationModule.cs
- Workspace.cs
- ResXResourceSet.cs
- StringToken.cs
- Vector3DAnimationBase.cs
- DataGridViewRowStateChangedEventArgs.cs
- AdRotatorDesigner.cs
- TargetControlTypeCache.cs
- PreloadedPackages.cs
- ZipIOCentralDirectoryBlock.cs
- AppendHelper.cs
- BypassElement.cs
- ScriptingWebServicesSectionGroup.cs
- GraphicsContainer.cs
- TileModeValidation.cs
- DataGridViewCellFormattingEventArgs.cs
- ImageList.cs
- DataAdapter.cs
- SqlClientMetaDataCollectionNames.cs
- IgnoreDeviceFilterElement.cs
- JumpItem.cs
- ComboBoxAutomationPeer.cs
- sqlinternaltransaction.cs
- ConfigurationStrings.cs
- DBPropSet.cs
- regiisutil.cs
- _AutoWebProxyScriptWrapper.cs
- DataGridAutoFormat.cs
- UshortList2.cs
- AffineTransform3D.cs
- CompositeTypefaceMetrics.cs
- HMACRIPEMD160.cs
- SmiMetaData.cs
- HashSetEqualityComparer.cs
- ApplicationBuildProvider.cs
- FileSystemEventArgs.cs
- ScrollChrome.cs