Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- BackgroundWorker.cs
- MorphHelper.cs
- DynamicControl.cs
- SoapAttributes.cs
- MouseOverProperty.cs
- PriorityRange.cs
- InvalidEnumArgumentException.cs
- HashMembershipCondition.cs
- Trigger.cs
- DataGridViewElement.cs
- ThrowHelper.cs
- NumberFunctions.cs
- FileDialogCustomPlace.cs
- RotationValidation.cs
- ExpressionLexer.cs
- ScriptingJsonSerializationSection.cs
- HttpAsyncResult.cs
- SafeFileMapViewHandle.cs
- ParserContext.cs
- OwnerDrawPropertyBag.cs
- SqlTypeSystemProvider.cs
- ReceiveActivityDesignerTheme.cs
- SystemDiagnosticsSection.cs
- VirtualDirectoryMapping.cs
- InfoCardClaimCollection.cs
- RtfToXamlLexer.cs
- SqlConnection.cs
- AvtEvent.cs
- DelegateArgumentReference.cs
- HttpCapabilitiesBase.cs
- Int64Animation.cs
- Stacktrace.cs
- FloaterParagraph.cs
- SqlAliaser.cs
- RowUpdatedEventArgs.cs
- IsolatedStorageFile.cs
- ExpressionsCollectionEditor.cs
- RepeatBehavior.cs
- ReadOnlyDataSource.cs
- ConnectionAcceptor.cs
- EncodingDataItem.cs
- ApplicationId.cs
- TreeNodeStyle.cs
- MulticastDelegate.cs
- QueryableFilterRepeater.cs
- ServerIdentity.cs
- ProcessThread.cs
- ReachPageContentSerializerAsync.cs
- InfoCardKeyedHashAlgorithm.cs
- CustomErrorsSectionWrapper.cs
- ContentPlaceHolderDesigner.cs
- CompositeScriptReferenceEventArgs.cs
- DesignerOptionService.cs
- SQLInt32Storage.cs
- WindowsButton.cs
- TypeLibConverter.cs
- WindowsAuthenticationModule.cs
- MD5.cs
- PreviewKeyDownEventArgs.cs
- SqlDataSource.cs
- WebBrowserNavigatedEventHandler.cs
- SQLInt64Storage.cs
- XsltFunctions.cs
- SqlReferenceCollection.cs
- WebControlAdapter.cs
- __Error.cs
- GenericPrincipal.cs
- WindowsListViewGroup.cs
- HttpWebRequestElement.cs
- DataMisalignedException.cs
- UpDownBase.cs
- AttachedPropertyMethodSelector.cs
- Currency.cs
- EditBehavior.cs
- ViewStateModeByIdAttribute.cs
- HandlerFactoryCache.cs
- MasterPageParser.cs
- BaseTemplateBuildProvider.cs
- FileDialog_Vista_Interop.cs
- IdentityReference.cs
- TableRowGroupCollection.cs
- SqlConnectionStringBuilder.cs
- SoapAttributeAttribute.cs
- SynchronizationContext.cs
- MachineKeySection.cs
- HttpServerUtilityWrapper.cs
- DnsEndPoint.cs
- PassportAuthenticationEventArgs.cs
- MaskDescriptor.cs
- QueryExpression.cs
- Regex.cs
- DbXmlEnabledProviderManifest.cs
- HashCodeCombiner.cs
- FontClient.cs
- NameValueCollection.cs
- X509Certificate.cs
- CustomValidator.cs
- SapiRecognizer.cs
- ResolveResponseInfo.cs
- SEHException.cs