Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Map / ViewGeneration / Structures / TypeConstant.cs / 1 / TypeConstant.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Text; using System.Collections.Generic; using System.Data.Mapping.ViewGeneration.CqlGeneration; using System.Data.Common; using System.Data.Common.Utils; using System.Data.Metadata.Edm; using System.Diagnostics; namespace System.Data.Mapping.ViewGeneration.Structures { // A constant for storing type values, e.g., a type constant is used to // denotes (say) a Person type, Address type, etc. It essentially // encapsulates a CDM Type internal class TypeConstant : CellConstant { #region Constructor // effects: Creates a type constant corresponding to "type" internal TypeConstant(EdmType type) { m_cdmType = type; } #endregion #region Fields // The CDM type denoted by this type constant private EdmType m_cdmType; #endregion #region Properties // effects: Returns the CDM type corresponding to this internal EdmType CdmType { get { return m_cdmType; } } #endregion #region Methods // effects: Given a projectedSlot that contributes to outputMember in // the output extent view, generates a constructor expression for // outputMember's type, i.e, an expression of the form "Type(....)" // If refscope is non-null, instead of constructing an Entity or // Complex type, constructs a reference internal override StringBuilder AsCql(StringBuilder builder, MemberPath outputMember, string blockAlias) { // Gather the fields for a constructor or a Ref expression Listfields = new List (); EntitySet refScope = outputMember.GetScopeOfRelationEnd(); EntityType refEntityType = null; if (refScope != null) { // Construct a scoped reference: CreateRef(CPerson1, row(pid1, pid2)) EntityType entityType = refScope.ElementType; refEntityType = (EntityType)(((RefType)outputMember.EdmType).ElementType); builder.Append("CreateRef("); CqlWriter.AppendEscapedQualifiedName(builder, refScope.EntityContainer.Name, refScope.Name); builder.Append(", row("); foreach (EdmMember keyMember in entityType.KeyMembers) { // Given the member, we need its aliased name MemberPath memberPath = new MemberPath(outputMember, keyMember); string fullFieldAlias = CqlWriter.GetQualifiedName(blockAlias, memberPath.CqlFieldAlias); fields.Add(fullFieldAlias); } } else { // Construct an entity/complex/Association type in the Members order // for fields: CPerson(CPerson1_Pid, CPerson1_Name) // It better be a structural type StructuralType structuralType = (StructuralType)m_cdmType; foreach (EdmMember member in Helper.GetAllStructuralMembers(structuralType)) { // Given the member, we need its aliased name: CPerson1_Pid MemberPath memberPath = new MemberPath(outputMember, member); string fullFieldAlias = CqlWriter.GetQualifiedName(blockAlias, memberPath.CqlFieldAlias); fields.Add(fullFieldAlias); } // Constructor call for the constructedType CqlWriter.AppendEscapedTypeName(builder, m_cdmType); builder.Append('('); } StringUtil.ToSeparatedString(builder, fields, ", ", null); builder.Append(')'); if (refScope != null) { Debug.Assert(refEntityType != null); builder.Append(","); CqlWriter.AppendEscapedTypeName(builder, refEntityType); builder.Append(')'); } return builder; } #endregion #region Public Override Methods for object and String methods protected override bool IsEqualTo(CellConstant right) { TypeConstant rightTypeConstant = right as TypeConstant; if (rightTypeConstant == null) { return false; } return m_cdmType == rightTypeConstant.m_cdmType; } protected override int GetHash() { if (m_cdmType == null) { // null type constant return 0; } else { return m_cdmType.GetHashCode(); } } private void InternalToString(StringBuilder builder, bool isInvariant) { if (m_cdmType == null) { // NULL type constant builder.Append(isInvariant? "NULL": System.Data.Entity.Strings.ViewGen_Null); } else { builder.Append(m_cdmType.Name); } } internal override string ToUserString() { StringBuilder builder = new StringBuilder(); InternalToString(builder, false); return builder.ToString(); } internal override void ToCompactString(StringBuilder builder) { InternalToString(builder, true); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Text; using System.Collections.Generic; using System.Data.Mapping.ViewGeneration.CqlGeneration; using System.Data.Common; using System.Data.Common.Utils; using System.Data.Metadata.Edm; using System.Diagnostics; namespace System.Data.Mapping.ViewGeneration.Structures { // A constant for storing type values, e.g., a type constant is used to // denotes (say) a Person type, Address type, etc. It essentially // encapsulates a CDM Type internal class TypeConstant : CellConstant { #region Constructor // effects: Creates a type constant corresponding to "type" internal TypeConstant(EdmType type) { m_cdmType = type; } #endregion #region Fields // The CDM type denoted by this type constant private EdmType m_cdmType; #endregion #region Properties // effects: Returns the CDM type corresponding to this internal EdmType CdmType { get { return m_cdmType; } } #endregion #region Methods // effects: Given a projectedSlot that contributes to outputMember in // the output extent view, generates a constructor expression for // outputMember's type, i.e, an expression of the form "Type(....)" // If refscope is non-null, instead of constructing an Entity or // Complex type, constructs a reference internal override StringBuilder AsCql(StringBuilder builder, MemberPath outputMember, string blockAlias) { // Gather the fields for a constructor or a Ref expression Listfields = new List (); EntitySet refScope = outputMember.GetScopeOfRelationEnd(); EntityType refEntityType = null; if (refScope != null) { // Construct a scoped reference: CreateRef(CPerson1, row(pid1, pid2)) EntityType entityType = refScope.ElementType; refEntityType = (EntityType)(((RefType)outputMember.EdmType).ElementType); builder.Append("CreateRef("); CqlWriter.AppendEscapedQualifiedName(builder, refScope.EntityContainer.Name, refScope.Name); builder.Append(", row("); foreach (EdmMember keyMember in entityType.KeyMembers) { // Given the member, we need its aliased name MemberPath memberPath = new MemberPath(outputMember, keyMember); string fullFieldAlias = CqlWriter.GetQualifiedName(blockAlias, memberPath.CqlFieldAlias); fields.Add(fullFieldAlias); } } else { // Construct an entity/complex/Association type in the Members order // for fields: CPerson(CPerson1_Pid, CPerson1_Name) // It better be a structural type StructuralType structuralType = (StructuralType)m_cdmType; foreach (EdmMember member in Helper.GetAllStructuralMembers(structuralType)) { // Given the member, we need its aliased name: CPerson1_Pid MemberPath memberPath = new MemberPath(outputMember, member); string fullFieldAlias = CqlWriter.GetQualifiedName(blockAlias, memberPath.CqlFieldAlias); fields.Add(fullFieldAlias); } // Constructor call for the constructedType CqlWriter.AppendEscapedTypeName(builder, m_cdmType); builder.Append('('); } StringUtil.ToSeparatedString(builder, fields, ", ", null); builder.Append(')'); if (refScope != null) { Debug.Assert(refEntityType != null); builder.Append(","); CqlWriter.AppendEscapedTypeName(builder, refEntityType); builder.Append(')'); } return builder; } #endregion #region Public Override Methods for object and String methods protected override bool IsEqualTo(CellConstant right) { TypeConstant rightTypeConstant = right as TypeConstant; if (rightTypeConstant == null) { return false; } return m_cdmType == rightTypeConstant.m_cdmType; } protected override int GetHash() { if (m_cdmType == null) { // null type constant return 0; } else { return m_cdmType.GetHashCode(); } } private void InternalToString(StringBuilder builder, bool isInvariant) { if (m_cdmType == null) { // NULL type constant builder.Append(isInvariant? "NULL": System.Data.Entity.Strings.ViewGen_Null); } else { builder.Append(m_cdmType.Name); } } internal override string ToUserString() { StringBuilder builder = new StringBuilder(); InternalToString(builder, false); return builder.ToString(); } internal override void ToCompactString(StringBuilder builder) { InternalToString(builder, true); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BoundColumn.cs
- _SslSessionsCache.cs
- DragCompletedEventArgs.cs
- SolidColorBrush.cs
- ConfigurationCollectionAttribute.cs
- OleDbReferenceCollection.cs
- WindowsListViewGroupHelper.cs
- FixedPageAutomationPeer.cs
- TdsRecordBufferSetter.cs
- ResetableIterator.cs
- HealthMonitoringSectionHelper.cs
- BamlResourceContent.cs
- UpDownBaseDesigner.cs
- EntityViewContainer.cs
- PrintController.cs
- RegexCompilationInfo.cs
- ValidationUtility.cs
- PngBitmapEncoder.cs
- ConfigsHelper.cs
- XPathScanner.cs
- EventsTab.cs
- AnnotationMap.cs
- SiteMap.cs
- DataGridCell.cs
- RemotingSurrogateSelector.cs
- DataView.cs
- PriorityChain.cs
- TextRunTypographyProperties.cs
- PropertyPathConverter.cs
- OdbcEnvironmentHandle.cs
- TransformDescriptor.cs
- Permission.cs
- DataGridViewRowConverter.cs
- RemotingSurrogateSelector.cs
- ContentPropertyAttribute.cs
- ColumnTypeConverter.cs
- ApplicationSecurityInfo.cs
- SiteMapNodeCollection.cs
- JavaScriptObjectDeserializer.cs
- XPathNodeIterator.cs
- Emitter.cs
- LocalizationComments.cs
- QualifiedCellIdBoolean.cs
- InputMethod.cs
- ModelChangedEventArgsImpl.cs
- SHA384.cs
- PublisherMembershipCondition.cs
- DisplayNameAttribute.cs
- WindowsSolidBrush.cs
- SafeRegistryHandle.cs
- ServiceOperation.cs
- AlgoModule.cs
- XmlArrayItemAttribute.cs
- EFColumnProvider.cs
- FlowDocumentView.cs
- LinkLabelLinkClickedEvent.cs
- XNodeValidator.cs
- ObfuscateAssemblyAttribute.cs
- WpfWebRequestHelper.cs
- XmlWellformedWriter.cs
- ResourceWriter.cs
- QilDataSource.cs
- Application.cs
- RuleRef.cs
- LinqDataSourceUpdateEventArgs.cs
- CommandID.cs
- InputScopeManager.cs
- AllMembershipCondition.cs
- CalendarAutoFormatDialog.cs
- ToolBarOverflowPanel.cs
- HostedHttpRequestAsyncResult.cs
- GridProviderWrapper.cs
- FontEmbeddingManager.cs
- PopupEventArgs.cs
- InstanceLockQueryResult.cs
- Sequence.cs
- TdsParserStateObject.cs
- _NegotiateClient.cs
- ICspAsymmetricAlgorithm.cs
- WebDisplayNameAttribute.cs
- XpsViewerException.cs
- EncryptedXml.cs
- DataSvcMapFileSerializer.cs
- CacheEntry.cs
- DataGridHeaderBorder.cs
- PolygonHotSpot.cs
- TextContainer.cs
- BuildManager.cs
- FormCollection.cs
- TextEditorContextMenu.cs
- EncoderReplacementFallback.cs
- Metadata.cs
- ArgIterator.cs
- VisualBasicImportReference.cs
- Deflater.cs
- SoapHttpTransportImporter.cs
- ScriptRegistrationManager.cs
- ProcessThread.cs
- SqlUserDefinedAggregateAttribute.cs
- ObjectTag.cs