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
- TagPrefixAttribute.cs
- GridViewDeletedEventArgs.cs
- CfgArc.cs
- DataGridViewImageCell.cs
- OleDbRowUpdatedEvent.cs
- TextEditorMouse.cs
- ComEventsHelper.cs
- String.cs
- RunInstallerAttribute.cs
- WebPartDeleteVerb.cs
- GlobalEventManager.cs
- DeferrableContentConverter.cs
- UnsafeNativeMethodsMilCoreApi.cs
- lengthconverter.cs
- TransactionTraceIdentifier.cs
- Vars.cs
- TrustExchangeException.cs
- UshortList2.cs
- SystemNetworkInterface.cs
- SecurityTokenSerializer.cs
- LineServicesCallbacks.cs
- DataGridPageChangedEventArgs.cs
- Vertex.cs
- wgx_sdk_version.cs
- XmlWriterSettings.cs
- PaintEvent.cs
- ClientSettingsStore.cs
- HtmlInputHidden.cs
- WorkflowItemPresenter.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- DocumentPageView.cs
- ArrayHelper.cs
- DataServiceQueryException.cs
- FixedSOMTableCell.cs
- unitconverter.cs
- WorkflowMarkupElementEventArgs.cs
- ControlBuilderAttribute.cs
- TraceShell.cs
- MailMessageEventArgs.cs
- Binding.cs
- EventSourceCreationData.cs
- Repeater.cs
- MemoryFailPoint.cs
- BitmapImage.cs
- EntityDesignPluralizationHandler.cs
- DragDrop.cs
- SQLDoubleStorage.cs
- StyleXamlTreeBuilder.cs
- QueryContext.cs
- BamlBinaryReader.cs
- UrlAuthorizationModule.cs
- TdsParser.cs
- PublishLicense.cs
- ObjectCloneHelper.cs
- ZipIOExtraFieldElement.cs
- X509Chain.cs
- NativeMethods.cs
- CommittableTransaction.cs
- ChangeDirector.cs
- CompModSwitches.cs
- OleDbRowUpdatedEvent.cs
- DNS.cs
- ViewValidator.cs
- MarkupProperty.cs
- OutOfProcStateClientManager.cs
- RSAOAEPKeyExchangeFormatter.cs
- CapabilitiesSection.cs
- HttpCacheParams.cs
- dtdvalidator.cs
- SafeFileMapViewHandle.cs
- OrderedEnumerableRowCollection.cs
- PasswordRecovery.cs
- TableLayoutRowStyleCollection.cs
- ValidatorCompatibilityHelper.cs
- QueryableFilterRepeater.cs
- OleAutBinder.cs
- ReaderWriterLock.cs
- CheckBoxStandardAdapter.cs
- OrderedEnumerableRowCollection.cs
- VisualCollection.cs
- ConfigurationStrings.cs
- LineUtil.cs
- BamlBinaryReader.cs
- ImmutableCommunicationTimeouts.cs
- XmlSerializerImportOptions.cs
- StreamGeometryContext.cs
- PreApplicationStartMethodAttribute.cs
- Size.cs
- InfiniteIntConverter.cs
- Empty.cs
- KnowledgeBase.cs
- ThrowHelper.cs
- CommandBindingCollection.cs
- DiagnosticTraceSource.cs
- _AcceptOverlappedAsyncResult.cs
- X509Certificate2Collection.cs
- HttpDictionary.cs
- FormViewUpdatedEventArgs.cs
- DriveNotFoundException.cs
- TypeBrowser.xaml.cs