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
- Parser.cs
- NavigatorInput.cs
- FlowDocumentPageViewerAutomationPeer.cs
- StringTraceRecord.cs
- XamlInterfaces.cs
- ActivityBuilderHelper.cs
- BamlLocalizationDictionary.cs
- ConnectionPoolManager.cs
- Fonts.cs
- RuntimeConfigurationRecord.cs
- ContentPropertyAttribute.cs
- ModelPropertyImpl.cs
- TaskHelper.cs
- ListControl.cs
- DispatcherHooks.cs
- WebServicesDescriptionAttribute.cs
- SqlUtil.cs
- LinqDataSourceValidationException.cs
- FontFamilyConverter.cs
- ControlBuilderAttribute.cs
- IPPacketInformation.cs
- BlurEffect.cs
- ResXResourceReader.cs
- SerializationInfoEnumerator.cs
- ExceptionUtility.cs
- TdsParameterSetter.cs
- HtmlUtf8RawTextWriter.cs
- Int32EqualityComparer.cs
- EventToken.cs
- UnauthorizedAccessException.cs
- ListControl.cs
- MappingSource.cs
- SecurityDocument.cs
- RightsManagementEncryptionTransform.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- MessageQueueConverter.cs
- DrawItemEvent.cs
- Token.cs
- HasCopySemanticsAttribute.cs
- AnonymousIdentificationModule.cs
- XmlEventCache.cs
- RootContext.cs
- CompoundFileStreamReference.cs
- DesignerVerbToolStripMenuItem.cs
- InvokeMethod.cs
- ScrollViewer.cs
- EntityChangedParams.cs
- UnmanagedMarshal.cs
- URL.cs
- ListViewPagedDataSource.cs
- DecoratedNameAttribute.cs
- MsmqTransportReceiveParameters.cs
- RegexParser.cs
- Stacktrace.cs
- ArgumentDesigner.xaml.cs
- OleDbConnectionFactory.cs
- XmlAttributes.cs
- ControlParameter.cs
- NonBatchDirectoryCompiler.cs
- TableAdapterManagerHelper.cs
- TableCell.cs
- ListViewCommandEventArgs.cs
- DataRow.cs
- DbConnectionInternal.cs
- Metadata.cs
- ModelService.cs
- EdmToObjectNamespaceMap.cs
- DBSqlParserTable.cs
- StrongNameKeyPair.cs
- PageBreakRecord.cs
- DecimalAnimation.cs
- SqlProfileProvider.cs
- EntityDataSourceWizardForm.cs
- AddInSegmentDirectoryNotFoundException.cs
- DataConnectionHelper.cs
- ListBox.cs
- CroppedBitmap.cs
- ReturnType.cs
- TypeLibraryHelper.cs
- StrokeDescriptor.cs
- LabelLiteral.cs
- CapabilitiesAssignment.cs
- FormViewCommandEventArgs.cs
- Query.cs
- TextSimpleMarkerProperties.cs
- AudioException.cs
- Error.cs
- TabControl.cs
- EnumValAlphaComparer.cs
- DataSvcMapFileSerializer.cs
- TypeUtil.cs
- XmlNodeReader.cs
- VisualTreeHelper.cs
- StringOutput.cs
- Pens.cs
- objectquery_tresulttype.cs
- CodeVariableDeclarationStatement.cs
- OperandQuery.cs
- BitmapEffectState.cs