Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Query / InternalTrees / ExplicitDiscriminatorMap.cs / 1305376 / 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
- BoundColumn.cs
- __Error.cs
- URI.cs
- HexParser.cs
- FederatedMessageSecurityOverHttp.cs
- SessionPageStateSection.cs
- WorkflowRuntimeServiceElementCollection.cs
- ViewStateModeByIdAttribute.cs
- CssStyleCollection.cs
- SqlBuffer.cs
- CompilerTypeWithParams.cs
- URLAttribute.cs
- HttpApplicationFactory.cs
- DbParameterCollectionHelper.cs
- VersionPair.cs
- CompilationPass2Task.cs
- HandledMouseEvent.cs
- BaseCollection.cs
- OutputWindow.cs
- InternalResources.cs
- DataObjectEventArgs.cs
- ProxyAttribute.cs
- TextHidden.cs
- TemplatedMailWebEventProvider.cs
- PointCollectionConverter.cs
- AssertFilter.cs
- MutableAssemblyCacheEntry.cs
- XmlUrlResolver.cs
- SoapTransportImporter.cs
- UpdatePanel.cs
- ServiceContractAttribute.cs
- ValueQuery.cs
- WebPartZoneCollection.cs
- MemberMaps.cs
- BinarySerializer.cs
- PeerNameRecord.cs
- SerialPort.cs
- WebPartCloseVerb.cs
- ColumnBinding.cs
- TraceProvider.cs
- SinglePageViewer.cs
- DrawingGroupDrawingContext.cs
- WorkflowRuntimeService.cs
- CompilerError.cs
- SchemaMerger.cs
- HttpMethodConstraint.cs
- TextEndOfSegment.cs
- Camera.cs
- DataSourceHelper.cs
- IdentityHolder.cs
- ProtocolsSection.cs
- ToolStripLabel.cs
- SqlNodeTypeOperators.cs
- CompatibleIComparer.cs
- RowTypePropertyElement.cs
- Context.cs
- Vector3DConverter.cs
- MappingMetadataHelper.cs
- HttpListenerResponse.cs
- SqlUserDefinedTypeAttribute.cs
- CanExecuteRoutedEventArgs.cs
- CompilerParameters.cs
- ModelTypeConverter.cs
- XmlArrayItemAttribute.cs
- ILGenerator.cs
- PrePostDescendentsWalker.cs
- ScrollViewer.cs
- Trigger.cs
- DbDeleteCommandTree.cs
- DateTimeStorage.cs
- QilChoice.cs
- SqlDataSourceCustomCommandPanel.cs
- FontEditor.cs
- DesignerActionItem.cs
- Point3DCollectionValueSerializer.cs
- DetailsViewPagerRow.cs
- FontStretchConverter.cs
- ConstraintEnumerator.cs
- EncodingTable.cs
- ImageResources.Designer.cs
- ManifestResourceInfo.cs
- GroupBox.cs
- RequestStatusBarUpdateEventArgs.cs
- UrlPropertyAttribute.cs
- VersionedStreamOwner.cs
- ContractsBCL.cs
- ParameterCollection.cs
- RefType.cs
- Journaling.cs
- _LocalDataStore.cs
- Parallel.cs
- WebPartUtil.cs
- Parser.cs
- DescendantQuery.cs
- BinaryExpressionHelper.cs
- SqlDesignerDataSourceView.cs
- XmlName.cs
- PromptStyle.cs
- ConstructorNeedsTagAttribute.cs
- TypeSystem.cs