Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Mapping / StorageSetMapping.cs / 2 / StorageSetMapping.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....],[....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using System.Data.Metadata.Edm;
using System.Data.Common.Utils;
using System.Diagnostics;
using System.Linq;
namespace System.Data.Mapping {
using Triple = Pair>;
///
/// Represents the Mapping metadata for an Extent in ES space.
///
///
/// For Example if conceptually you could represent the ES MSL file as following
/// --Mapping
/// --EntityContainerMapping ( CNorthwind-->SNorthwind )
/// --EntitySetMapping
/// --EntityTypeMapping
/// --TableMappingFragment
/// --EntityTypeMapping
/// --TableMappingFragment
/// --AssociationSetMapping
/// --AssociationTypeMapping
/// --TableMappingFragment
/// --EntityContainerMapping ( CMyDatabase-->SMyDatabase )
/// --CompositionSetMapping
/// --CompositionTypeMapping
/// This class represents the metadata for all the extent map elements in the
/// above example namely EntitySetMapping, AssociationSetMapping and CompositionSetMapping.
/// The SetMapping elements that are children of the EntityContainerMapping element
/// can be accessed through the properties on this type.
///
internal abstract class StorageSetMapping
{
#region Constructors
///
/// Construct the new ExtentMapping object.
///
/// Extent metadata object
/// The EntityContainer mapping that contains this extent mapping
internal StorageSetMapping(EntitySetBase extent, StorageEntityContainerMapping entityContainerMapping) {
this.m_entityContainerMapping = entityContainerMapping;
this.m_extent = extent;
this.m_typeMappings = new List();
}
#endregion
#region Fields
private StorageEntityContainerMapping m_entityContainerMapping; //The EntityContainer mapping that contains this extent mapping
private EntitySetBase m_extent; //The extent for which this mapping represents.
private List m_typeMappings; //Set of type mappings that make up the Set Mapping
//Unless this is a EntitySetMapping with inheritance,
//you would have a single type mapping per set
private string m_queryView; //User defined Query View for the EntitySet
private int m_startLineNumber; //Line Number for Set Mapping element start tag
private int m_startLinePosition; //Line position for Set Mapping element start tag
//Stores type-Specific user-defined QueryViews
private Dictionary m_typeSpecificQueryViews =
new Dictionary(Triple.PairComparer.Instance);
#endregion
#region Properties
///
/// The set for which this mapping is for
///
internal EntitySetBase Set
{
get {
return this.m_extent;
}
}
/////
///// TypeMappings that make up this set type.
///// For AssociationSet and CompositionSet there will be one type( atleast thats what
///// we expect as of now). EntitySet could have mappings for multiple Entity types.
/////
internal ReadOnlyCollection TypeMappings
{
get
{
return this.m_typeMappings.AsReadOnly();
}
}
internal StorageEntityContainerMapping EntityContainerMapping
{
get
{
return m_entityContainerMapping;
}
}
///
/// Whether the SetMapping has empty content
/// Returns true if there no table Mapping fragments
///
internal virtual bool HasNoContent
{
get
{
if (QueryView != null)
{
return false;
}
foreach (StorageTypeMapping typeMap in TypeMappings)
{
foreach (StorageMappingFragment mapFragment in typeMap.MappingFragments)
{
foreach (StoragePropertyMapping propertyMap in mapFragment.AllProperties)
{
return false;
}
}
}
return true;
}
}
internal string QueryView
{
get { return m_queryView; }
set { m_queryView = value; }
}
///
/// Line Number in MSL file where the Set Mapping Element's Start Tag is present.
///
internal int StartLineNumber
{
get
{
return m_startLineNumber;
}
set
{
m_startLineNumber = value;
}
}
///
/// Line Position in MSL file where the Set Mapping Element's Start Tag is present.
///
internal int StartLinePosition
{
get
{
return m_startLinePosition;
}
set
{
m_startLinePosition = value;
}
}
#endregion
#region Methods
///
/// Add type mapping as a child under this SetMapping
///
///
internal void AddTypeMapping(StorageTypeMapping typeMapping)
{
this.m_typeMappings.Add(typeMapping);
}
///
/// This method is primarily for debugging purposes.
/// Will be removed shortly.
///
internal abstract void Print(int index);
internal bool ContainsTypeSpecificQueryView(Triple key)
{
return m_typeSpecificQueryViews.ContainsKey(key);
}
///
/// Stores a type-specific user-defiend QueryView so that it can be loaded
/// into StorageMappingItemCollection's view cache.
///
internal void AddTypeSpecificQueryView(Triple key, string viewString)
{
Debug.Assert(!m_typeSpecificQueryViews.ContainsKey(key), "Query View already present for the given Key");
m_typeSpecificQueryViews.Add(key, viewString);
}
internal ReadOnlyCollection GetTypeSpecificQVKeys()
{
return new ReadOnlyCollection(m_typeSpecificQueryViews.Keys.ToList());
}
internal string GetTypeSpecificQueryView(Triple key)
{
Debug.Assert(m_typeSpecificQueryViews.ContainsKey(key));
return m_typeSpecificQueryViews[key];
}
#endregion
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....],[....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using System.Data.Metadata.Edm;
using System.Data.Common.Utils;
using System.Diagnostics;
using System.Linq;
namespace System.Data.Mapping {
using Triple = Pair>;
///
/// Represents the Mapping metadata for an Extent in ES space.
///
///
/// For Example if conceptually you could represent the ES MSL file as following
/// --Mapping
/// --EntityContainerMapping ( CNorthwind-->SNorthwind )
/// --EntitySetMapping
/// --EntityTypeMapping
/// --TableMappingFragment
/// --EntityTypeMapping
/// --TableMappingFragment
/// --AssociationSetMapping
/// --AssociationTypeMapping
/// --TableMappingFragment
/// --EntityContainerMapping ( CMyDatabase-->SMyDatabase )
/// --CompositionSetMapping
/// --CompositionTypeMapping
/// This class represents the metadata for all the extent map elements in the
/// above example namely EntitySetMapping, AssociationSetMapping and CompositionSetMapping.
/// The SetMapping elements that are children of the EntityContainerMapping element
/// can be accessed through the properties on this type.
///
internal abstract class StorageSetMapping
{
#region Constructors
///
/// Construct the new ExtentMapping object.
///
/// Extent metadata object
/// The EntityContainer mapping that contains this extent mapping
internal StorageSetMapping(EntitySetBase extent, StorageEntityContainerMapping entityContainerMapping) {
this.m_entityContainerMapping = entityContainerMapping;
this.m_extent = extent;
this.m_typeMappings = new List();
}
#endregion
#region Fields
private StorageEntityContainerMapping m_entityContainerMapping; //The EntityContainer mapping that contains this extent mapping
private EntitySetBase m_extent; //The extent for which this mapping represents.
private List m_typeMappings; //Set of type mappings that make up the Set Mapping
//Unless this is a EntitySetMapping with inheritance,
//you would have a single type mapping per set
private string m_queryView; //User defined Query View for the EntitySet
private int m_startLineNumber; //Line Number for Set Mapping element start tag
private int m_startLinePosition; //Line position for Set Mapping element start tag
//Stores type-Specific user-defined QueryViews
private Dictionary m_typeSpecificQueryViews =
new Dictionary(Triple.PairComparer.Instance);
#endregion
#region Properties
///
/// The set for which this mapping is for
///
internal EntitySetBase Set
{
get {
return this.m_extent;
}
}
/////
///// TypeMappings that make up this set type.
///// For AssociationSet and CompositionSet there will be one type( atleast thats what
///// we expect as of now). EntitySet could have mappings for multiple Entity types.
/////
internal ReadOnlyCollection TypeMappings
{
get
{
return this.m_typeMappings.AsReadOnly();
}
}
internal StorageEntityContainerMapping EntityContainerMapping
{
get
{
return m_entityContainerMapping;
}
}
///
/// Whether the SetMapping has empty content
/// Returns true if there no table Mapping fragments
///
internal virtual bool HasNoContent
{
get
{
if (QueryView != null)
{
return false;
}
foreach (StorageTypeMapping typeMap in TypeMappings)
{
foreach (StorageMappingFragment mapFragment in typeMap.MappingFragments)
{
foreach (StoragePropertyMapping propertyMap in mapFragment.AllProperties)
{
return false;
}
}
}
return true;
}
}
internal string QueryView
{
get { return m_queryView; }
set { m_queryView = value; }
}
///
/// Line Number in MSL file where the Set Mapping Element's Start Tag is present.
///
internal int StartLineNumber
{
get
{
return m_startLineNumber;
}
set
{
m_startLineNumber = value;
}
}
///
/// Line Position in MSL file where the Set Mapping Element's Start Tag is present.
///
internal int StartLinePosition
{
get
{
return m_startLinePosition;
}
set
{
m_startLinePosition = value;
}
}
#endregion
#region Methods
///
/// Add type mapping as a child under this SetMapping
///
///
internal void AddTypeMapping(StorageTypeMapping typeMapping)
{
this.m_typeMappings.Add(typeMapping);
}
///
/// This method is primarily for debugging purposes.
/// Will be removed shortly.
///
internal abstract void Print(int index);
internal bool ContainsTypeSpecificQueryView(Triple key)
{
return m_typeSpecificQueryViews.ContainsKey(key);
}
///
/// Stores a type-specific user-defiend QueryView so that it can be loaded
/// into StorageMappingItemCollection's view cache.
///
internal void AddTypeSpecificQueryView(Triple key, string viewString)
{
Debug.Assert(!m_typeSpecificQueryViews.ContainsKey(key), "Query View already present for the given Key");
m_typeSpecificQueryViews.Add(key, viewString);
}
internal ReadOnlyCollection GetTypeSpecificQVKeys()
{
return new ReadOnlyCollection(m_typeSpecificQueryViews.Keys.ToList());
}
internal string GetTypeSpecificQueryView(Triple key)
{
Debug.Assert(m_typeSpecificQueryViews.ContainsKey(key));
return m_typeSpecificQueryViews[key];
}
#endregion
}
}
// 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
- sqlmetadatafactory.cs
- ServiceDescriptionImporter.cs
- ADRoleFactory.cs
- PeerInvitationResponse.cs
- LinqToSqlWrapper.cs
- AsyncPostBackErrorEventArgs.cs
- EngineSiteSapi.cs
- Pen.cs
- ExpressionWriter.cs
- WebPartEditorCancelVerb.cs
- DefaultSection.cs
- StatusBarPanel.cs
- ADMembershipProvider.cs
- Int32CollectionValueSerializer.cs
- DbParameterHelper.cs
- ChannelManager.cs
- WizardStepBase.cs
- HttpRequest.cs
- GridItemCollection.cs
- RuntimeConfig.cs
- EncodingNLS.cs
- ListSourceHelper.cs
- NavigationHelper.cs
- MenuItemBinding.cs
- DbParameterHelper.cs
- MarkupCompilePass2.cs
- Renderer.cs
- MeshGeometry3D.cs
- DodSequenceMerge.cs
- TextEndOfLine.cs
- CodeGeneratorOptions.cs
- BookmarkUndoUnit.cs
- TextSegment.cs
- LinearGradientBrush.cs
- XomlCompilerError.cs
- ToolBarPanel.cs
- CodeSubDirectory.cs
- DataSource.cs
- DrawingDrawingContext.cs
- RowToParametersTransformer.cs
- EntityContainerEntitySetDefiningQuery.cs
- CanExpandCollapseAllConverter.cs
- StringKeyFrameCollection.cs
- StateChangeEvent.cs
- SamlEvidence.cs
- SemanticResolver.cs
- RbTree.cs
- _NegoState.cs
- ArrayWithOffset.cs
- ElementsClipboardData.cs
- CharacterBufferReference.cs
- CanExecuteRoutedEventArgs.cs
- OptimalTextSource.cs
- XmlSchemaObjectCollection.cs
- Point3DValueSerializer.cs
- ActiveDocumentEvent.cs
- ValidatorCollection.cs
- XPathMultyIterator.cs
- DynamicILGenerator.cs
- SiteMapDataSource.cs
- PassportAuthenticationModule.cs
- AttachmentCollection.cs
- TableColumn.cs
- TagPrefixInfo.cs
- OleDbParameterCollection.cs
- TextBlock.cs
- EncoderExceptionFallback.cs
- IndexedWhereQueryOperator.cs
- OutputScopeManager.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- BaseTemplateParser.cs
- MinimizableAttributeTypeConverter.cs
- CheckedListBox.cs
- CollectionViewGroupRoot.cs
- XsltOutput.cs
- DashStyle.cs
- MaterialGroup.cs
- ColumnTypeConverter.cs
- ColumnTypeConverter.cs
- LongAverageAggregationOperator.cs
- ConfigurationSettings.cs
- EmptyQuery.cs
- ToolStripContainer.cs
- HtmlControlPersistable.cs
- JsonFormatGeneratorStatics.cs
- Constraint.cs
- PermissionListSet.cs
- Renderer.cs
- StringStorage.cs
- EventLogPermission.cs
- LightweightEntityWrapper.cs
- AuditLog.cs
- CodeTryCatchFinallyStatement.cs
- DataListDesigner.cs
- BookmarkTable.cs
- XmlDataCollection.cs
- TiffBitmapEncoder.cs
- CrossSiteScriptingValidation.cs
- ToolBar.cs
- XamlToRtfWriter.cs