Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Serializer.cs
- ObjectConverter.cs
- WebBrowserNavigatingEventHandler.cs
- StaticContext.cs
- SizeF.cs
- OletxTransactionHeader.cs
- CellRelation.cs
- UnauthorizedWebPart.cs
- HealthMonitoringSectionHelper.cs
- ServiceNotStartedException.cs
- TraceContext.cs
- Int64KeyFrameCollection.cs
- IssuedTokenServiceElement.cs
- LongTypeConverter.cs
- EntityWrapper.cs
- Span.cs
- DataGridAddNewRow.cs
- AudioSignalProblemOccurredEventArgs.cs
- UnsupportedPolicyOptionsException.cs
- CompareValidator.cs
- SplitterPanel.cs
- ChannelServices.cs
- TextSelectionHighlightLayer.cs
- WindowsComboBox.cs
- BinaryConverter.cs
- Graph.cs
- FileChangesMonitor.cs
- PageRanges.cs
- LongValidator.cs
- SmtpReplyReader.cs
- WebPartMenu.cs
- SystemIPAddressInformation.cs
- HttpResponseInternalWrapper.cs
- XmlDocumentSurrogate.cs
- CommonDialog.cs
- StringFreezingAttribute.cs
- ToolboxBitmapAttribute.cs
- QilTypeChecker.cs
- HttpChannelHelper.cs
- ItemsChangedEventArgs.cs
- EdmRelationshipRoleAttribute.cs
- FileLoadException.cs
- Int64.cs
- GridSplitterAutomationPeer.cs
- DrawingVisual.cs
- DurableInstanceProvider.cs
- ResXResourceWriter.cs
- SoapIncludeAttribute.cs
- MimePart.cs
- Wizard.cs
- ObfuscateAssemblyAttribute.cs
- ProtectedConfigurationSection.cs
- DirectoryNotFoundException.cs
- entityreference_tresulttype.cs
- TemplateBindingExtension.cs
- PageStatePersister.cs
- AdjustableArrowCap.cs
- XmlCharacterData.cs
- CollectionBuilder.cs
- XmlSchemaDocumentation.cs
- oledbmetadatacollectionnames.cs
- HeaderedItemsControl.cs
- ValidationError.cs
- TextBoxLine.cs
- SafeSecurityHandles.cs
- SiblingIterators.cs
- CookieParameter.cs
- SettingsPropertyNotFoundException.cs
- DragStartedEventArgs.cs
- DataControlPagerLinkButton.cs
- UriSectionData.cs
- SqlCacheDependencyDatabaseCollection.cs
- KoreanCalendar.cs
- glyphs.cs
- DateTimeFormat.cs
- SchemaImporterExtension.cs
- XmlCompatibilityReader.cs
- OrderedDictionary.cs
- MethodCallConverter.cs
- XslException.cs
- SystemWebCachingSectionGroup.cs
- SevenBitStream.cs
- ToolStripControlHost.cs
- AuthenticationSection.cs
- GPStream.cs
- InputManager.cs
- ValidatedControlConverter.cs
- TransformationRules.cs
- CalendarItem.cs
- ListViewSelectEventArgs.cs
- DbCommandTree.cs
- DNS.cs
- EdmConstants.cs
- versioninfo.cs
- DbUpdateCommandTree.cs
- MimeWriter.cs
- PeerOutputChannel.cs
- EqualityComparer.cs
- XPathDocument.cs
- FormViewPagerRow.cs