Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Query / InternalTrees / ExplicitDiscriminatorMap.cs / 1 / ExplicitDiscriminatorMap.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Data.Metadata.Edm; using System.Collections.Generic; using System.Linq; namespace System.Data.Query.InternalTrees { ////// Describes user-defined discriminator metadata (e.g. for a basic TPH mapping). Encapsulates /// relevant data from System.Data.Mapping.ViewGenerabetion.DiscriminatorMap (that is to say, /// data relevant to the PlanCompiler). This separate class accomplishes two things: /// /// 1. Maintain separation of ViewGen and PlanCompiler /// 2. Avoid holding references to CQT expressions in ITree ops (which the ViewGen.DiscriminatorMap /// holds a few CQT references) /// internal class ExplicitDiscriminatorMap { private readonly System.Collections.ObjectModel.ReadOnlyCollection> m_typeMap; private readonly EdmMember m_discriminatorProperty; private readonly System.Collections.ObjectModel.ReadOnlyCollection m_properties; internal ExplicitDiscriminatorMap(System.Data.Mapping.ViewGeneration.DiscriminatorMap template) { m_typeMap = template.TypeMap; m_discriminatorProperty = template.Discriminator.Property; m_properties = template.PropertyMap.Select(propertyValuePair => propertyValuePair.Key) .ToList().AsReadOnly(); } /// /// Maps from discriminator value to type. /// internal System.Collections.ObjectModel.ReadOnlyCollection> TypeMap { get { return m_typeMap; } } /// /// Gets property containing discriminator value. /// internal EdmMember DiscriminatorProperty { get { return m_discriminatorProperty; } } ////// All properties for the type hierarchy. /// internal System.Collections.ObjectModel.ReadOnlyCollectionProperties { get { return m_properties; } } /// /// Returns the type id for the given entity type, or null if non exists. /// internal object GetTypeId(EntityType entityType) { object result = null; foreach (var discriminatorTypePair in this.TypeMap) { if (discriminatorTypePair.Value.EdmEquals(entityType)) { result = discriminatorTypePair.Key; break; } } return result; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Data.Metadata.Edm; using System.Collections.Generic; using System.Linq; namespace System.Data.Query.InternalTrees { ////// Describes user-defined discriminator metadata (e.g. for a basic TPH mapping). Encapsulates /// relevant data from System.Data.Mapping.ViewGenerabetion.DiscriminatorMap (that is to say, /// data relevant to the PlanCompiler). This separate class accomplishes two things: /// /// 1. Maintain separation of ViewGen and PlanCompiler /// 2. Avoid holding references to CQT expressions in ITree ops (which the ViewGen.DiscriminatorMap /// holds a few CQT references) /// internal class ExplicitDiscriminatorMap { private readonly System.Collections.ObjectModel.ReadOnlyCollection> m_typeMap; private readonly EdmMember m_discriminatorProperty; private readonly System.Collections.ObjectModel.ReadOnlyCollection m_properties; internal ExplicitDiscriminatorMap(System.Data.Mapping.ViewGeneration.DiscriminatorMap template) { m_typeMap = template.TypeMap; m_discriminatorProperty = template.Discriminator.Property; m_properties = template.PropertyMap.Select(propertyValuePair => propertyValuePair.Key) .ToList().AsReadOnly(); } /// /// Maps from discriminator value to type. /// internal System.Collections.ObjectModel.ReadOnlyCollection> TypeMap { get { return m_typeMap; } } /// /// Gets property containing discriminator value. /// internal EdmMember DiscriminatorProperty { get { return m_discriminatorProperty; } } ////// All properties for the type hierarchy. /// internal System.Collections.ObjectModel.ReadOnlyCollectionProperties { get { return m_properties; } } /// /// Returns the type id for the given entity type, or null if non exists. /// internal object GetTypeId(EntityType entityType) { object result = null; foreach (var discriminatorTypePair in this.TypeMap) { if (discriminatorTypePair.Value.EdmEquals(entityType)) { result = discriminatorTypePair.Key; break; } } return result; } } } // 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
- ProfileEventArgs.cs
- WhitespaceSignificantCollectionAttribute.cs
- HighContrastHelper.cs
- XmlSerializationWriter.cs
- UTF7Encoding.cs
- WebDisplayNameAttribute.cs
- BitmapCache.cs
- MatrixConverter.cs
- ActivitiesCollection.cs
- WeakHashtable.cs
- CollectionBase.cs
- SrgsRule.cs
- PrintControllerWithStatusDialog.cs
- SystemTcpConnection.cs
- WebPartUserCapability.cs
- UIElementHelper.cs
- ScrollBar.cs
- ThreadExceptionDialog.cs
- StringAnimationBase.cs
- UmAlQuraCalendar.cs
- StoreAnnotationsMap.cs
- Currency.cs
- BitmapImage.cs
- HttpCachePolicy.cs
- StringResourceManager.cs
- DataMemberConverter.cs
- _SingleItemRequestCache.cs
- VisualTransition.cs
- WorkflowMessageEventHandler.cs
- DataSourceXmlSerializationAttribute.cs
- Site.cs
- DynamicResourceExtension.cs
- PrimarySelectionGlyph.cs
- RemotingAttributes.cs
- HtmlHistory.cs
- StringUtil.cs
- AudioFormatConverter.cs
- StatusBarItem.cs
- DataGridTablesFactory.cs
- TimeEnumHelper.cs
- ViewEventArgs.cs
- dataprotectionpermissionattribute.cs
- SqlColumnizer.cs
- ChildChangedEventArgs.cs
- ControlTemplate.cs
- LineUtil.cs
- XmlRawWriter.cs
- DependencyObjectProvider.cs
- ComplexBindingPropertiesAttribute.cs
- EditorZoneDesigner.cs
- SqlBulkCopyColumnMappingCollection.cs
- X509RawDataKeyIdentifierClause.cs
- PieceDirectory.cs
- NameValueConfigurationCollection.cs
- Math.cs
- SaveFileDialog.cs
- WindowProviderWrapper.cs
- XmlTextWriter.cs
- VirtualPathProvider.cs
- Emitter.cs
- TdsValueSetter.cs
- EventLogPermissionEntryCollection.cs
- StatusBarDesigner.cs
- OleDbEnumerator.cs
- HttpHandlerActionCollection.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- CommandEventArgs.cs
- LookupTables.cs
- ToolStripKeyboardHandlingService.cs
- DateTimeUtil.cs
- CustomWebEventKey.cs
- ObjectViewEntityCollectionData.cs
- TextSpanModifier.cs
- BindingMemberInfo.cs
- InheritanceContextHelper.cs
- RegexCaptureCollection.cs
- WorkflowServiceHostFactory.cs
- HtmlMeta.cs
- TableAdapterManagerNameHandler.cs
- ToolboxItemCollection.cs
- RotateTransform3D.cs
- Encoder.cs
- ListBase.cs
- BuildDependencySet.cs
- SHA512.cs
- Marshal.cs
- ScrollProperties.cs
- TransactionManager.cs
- ResourceSet.cs
- Column.cs
- DBConnection.cs
- DataObjectCopyingEventArgs.cs
- LayoutExceptionEventArgs.cs
- WebBaseEventKeyComparer.cs
- dataprotectionpermissionattribute.cs
- DataControlLinkButton.cs
- ZipIOExtraFieldElement.cs
- CanonicalXml.cs
- Brushes.cs
- StrokeCollection.cs