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.ReadOnlyCollection Properties
{
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.ReadOnlyCollection Properties
{
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
- BackStopAuthenticationModule.cs
- ModuleElement.cs
- ListenerElementsCollection.cs
- ToolStripItemClickedEventArgs.cs
- Attributes.cs
- MiniAssembly.cs
- TrackingLocationCollection.cs
- FlowDocumentReader.cs
- OleStrCAMarshaler.cs
- XmlDataLoader.cs
- XamlVector3DCollectionSerializer.cs
- DataGridViewButtonCell.cs
- DiscoveryVersion.cs
- XmlC14NWriter.cs
- ContentPosition.cs
- HtmlTableRow.cs
- MemoryResponseElement.cs
- RectValueSerializer.cs
- __ConsoleStream.cs
- QueryPageSettingsEventArgs.cs
- WebPartExportVerb.cs
- LicenseManager.cs
- SourceLineInfo.cs
- ItemDragEvent.cs
- TraceHandler.cs
- DataGridViewColumn.cs
- HtmlShim.cs
- SQLBinaryStorage.cs
- WebPermission.cs
- TypefaceMap.cs
- WebControlToolBoxItem.cs
- TransformerConfigurationWizardBase.cs
- SiteMapNode.cs
- HierarchicalDataSourceControl.cs
- ServiceReference.cs
- DataColumnMappingCollection.cs
- MultiPageTextView.cs
- ResetableIterator.cs
- ServiceEndpointElementCollection.cs
- PingOptions.cs
- SecurityKeyIdentifier.cs
- EnumValidator.cs
- CommonXSendMessage.cs
- HybridDictionary.cs
- CodeBlockBuilder.cs
- EnvironmentPermission.cs
- TimeManager.cs
- WebServiceMethodData.cs
- PermissionListSet.cs
- mediaeventshelper.cs
- StdRegProviderWrapper.cs
- JsonWriter.cs
- MatrixCamera.cs
- UnauthorizedWebPart.cs
- RNGCryptoServiceProvider.cs
- WindowsGraphics.cs
- RectKeyFrameCollection.cs
- SafeCertificateContext.cs
- ProcessModelInfo.cs
- DefinitionBase.cs
- PropertyChangedEventManager.cs
- Dump.cs
- ConfigurationFileMap.cs
- SqlUserDefinedAggregateAttribute.cs
- Visual3D.cs
- SchemaEntity.cs
- ContentIterators.cs
- SecurityTokenException.cs
- WebMethodAttribute.cs
- XmlQueryCardinality.cs
- FigureHelper.cs
- QueryConverter.cs
- DbCommandTree.cs
- StateManagedCollection.cs
- WindowsServiceCredential.cs
- SqlDataSourceCommandEventArgs.cs
- RouteUrlExpressionBuilder.cs
- TPLETWProvider.cs
- XPathExpr.cs
- NonVisualControlAttribute.cs
- RemotingConfiguration.cs
- HtmlForm.cs
- DPTypeDescriptorContext.cs
- Int16Converter.cs
- DetailsViewModeEventArgs.cs
- RectAnimationBase.cs
- SmtpMail.cs
- FixedSOMTextRun.cs
- ADRoleFactoryConfiguration.cs
- XmlSchemaObjectCollection.cs
- ListDataBindEventArgs.cs
- XmlNullResolver.cs
- CollectionEditor.cs
- DataServiceRequestException.cs
- CodeCatchClauseCollection.cs
- HostExecutionContextManager.cs
- SqlInternalConnectionSmi.cs
- ConversionHelper.cs
- DbParameterCollectionHelper.cs
- XPathDescendantIterator.cs