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
- AccessorTable.cs
- UrlMappingCollection.cs
- ConnectionStringsExpressionBuilder.cs
- ContentElementCollection.cs
- OutputCacheSettingsSection.cs
- WebPartActionVerb.cs
- NavigatorInput.cs
- ServiceHttpModule.cs
- TypeUsage.cs
- BuildManagerHost.cs
- ExternalException.cs
- PolicyManager.cs
- HostProtectionPermission.cs
- BitmapCodecInfo.cs
- DataPagerFieldCommandEventArgs.cs
- GridViewCancelEditEventArgs.cs
- LocatorBase.cs
- RedirectionProxy.cs
- COM2Properties.cs
- ResumeStoryboard.cs
- DataGridViewComboBoxCell.cs
- AnnotationService.cs
- WpfPayload.cs
- ServiceModelExtensionCollectionElement.cs
- DragEventArgs.cs
- XmlNode.cs
- ListDataBindEventArgs.cs
- UIElement3D.cs
- TextDecorationUnitValidation.cs
- PeerMaintainer.cs
- BinaryObjectInfo.cs
- RawStylusActions.cs
- FormViewPagerRow.cs
- ListBoxItemWrapperAutomationPeer.cs
- EllipticalNodeOperations.cs
- WindowsRegion.cs
- CannotUnloadAppDomainException.cs
- Decorator.cs
- SqlDataSourceCommandEventArgs.cs
- InstanceView.cs
- StateBag.cs
- MDIControlStrip.cs
- ResourceProperty.cs
- XomlDesignerLoader.cs
- RequestNavigateEventArgs.cs
- SQLDateTimeStorage.cs
- CustomErrorsSection.cs
- ISAPIApplicationHost.cs
- EditCommandColumn.cs
- XmlHierarchicalDataSourceView.cs
- OrderingInfo.cs
- SqlVersion.cs
- MethodInfo.cs
- DataServiceConfiguration.cs
- CustomPopupPlacement.cs
- TableCellCollection.cs
- ForeignKeyFactory.cs
- Base64Stream.cs
- OutputCacheSettings.cs
- CodeAccessSecurityEngine.cs
- GuidelineSet.cs
- ScriptMethodAttribute.cs
- SkipQueryOptionExpression.cs
- DataListCommandEventArgs.cs
- StaticFileHandler.cs
- _SslStream.cs
- CodeTypeParameterCollection.cs
- MediaPlayer.cs
- PermissionSetEnumerator.cs
- webclient.cs
- QueryOptionExpression.cs
- GeneralTransformGroup.cs
- XmlTextAttribute.cs
- SemanticValue.cs
- HttpCapabilitiesEvaluator.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- DiagnosticTrace.cs
- SrgsItemList.cs
- CqlWriter.cs
- SqlVisitor.cs
- ProfileEventArgs.cs
- WindowsListViewScroll.cs
- remotingproxy.cs
- Substitution.cs
- XmlSchemaDocumentation.cs
- Pair.cs
- ACL.cs
- ShaderEffect.cs
- DataGridRow.cs
- SecureUICommand.cs
- cache.cs
- BrowserDefinitionCollection.cs
- BitmapCache.cs
- FormatterServices.cs
- ArgumentException.cs
- XamlToRtfParser.cs
- OleDbPropertySetGuid.cs
- ReadOnlyObservableCollection.cs
- MenuItem.cs
- GridViewUpdatedEventArgs.cs