Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / QueryCache / EntitySqlQueryCacheKey.cs / 1305376 / EntitySqlQueryCacheKey.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //----------------------------------------------------------------------------- namespace System.Data.Common.QueryCache { using System; using System.Data.Objects; using System.Diagnostics; ////// Represents an Entity-SQL-based ObjectQuery Cache key context /// internal sealed class EntitySqlQueryCacheKey : QueryCacheKey { ////// Aggregate hashcode based the hashcode of the properties of this cache key /// private readonly int _hashCode; ////// The name of the default container in effect when the Entity-SQL text was parsed /// (affects whether or not the text can be successfully parsed) /// private string _defaultContainer; ////// Entity Sql statement /// private readonly string _eSqlStatement; ////// Parameter collection token /// private readonly string _parametersToken; ////// Number of parameters /// private readonly int _parameterCount; ////// Concatenated representation of the Include span paths /// private readonly string _includePathsToken; ////// The merge option in effect /// private readonly MergeOption _mergeOption; ////// Result type affects assembly plan. /// private readonly Type _resultType; ////// Creates a new instance of ObjectQueryCacheKey given a entityCommand instance /// /// The default container name in effect when parsing the query (may be null) /// The Entity-SQL text of the query /// The number of parameters to the query /// A string representation of the parameters to the query (may be null) /// A string representation of the Include span paths in effect (may be null) /// The merge option in effect. Required for result assembly. internal EntitySqlQueryCacheKey(string defaultContainerName, string eSqlStatement, int parameterCount, string parametersToken, string includePathsToken, MergeOption mergeOption, Type resultType) : base() { Debug.Assert(null != eSqlStatement, "eSqlStatement must not be null"); _defaultContainer = defaultContainerName; _eSqlStatement = eSqlStatement; _parameterCount = parameterCount; _parametersToken = parametersToken; _includePathsToken = includePathsToken; _mergeOption = mergeOption; _resultType = resultType; int combinedHash = _eSqlStatement.GetHashCode() ^ _mergeOption.GetHashCode(); if (_parametersToken != null) { combinedHash ^= _parametersToken.GetHashCode(); } if (_includePathsToken != null) { combinedHash ^= _includePathsToken.GetHashCode(); } if (_defaultContainer != null) { combinedHash ^= _defaultContainer.GetHashCode(); } _hashCode = combinedHash; } ////// Determines equality of two cache keys based on cache context values /// /// ///public override bool Equals(object otherObject) { Debug.Assert(null != otherObject, "otherObject must not be null"); if (typeof(EntitySqlQueryCacheKey) != otherObject.GetType()) { return false; } EntitySqlQueryCacheKey otherObjectQueryCacheKey = (EntitySqlQueryCacheKey)otherObject; // also use result type... return (_parameterCount == otherObjectQueryCacheKey._parameterCount) && (_mergeOption == otherObjectQueryCacheKey._mergeOption) && Equals(otherObjectQueryCacheKey._defaultContainer, _defaultContainer) && Equals(otherObjectQueryCacheKey._eSqlStatement, _eSqlStatement) && Equals(otherObjectQueryCacheKey._includePathsToken, _includePathsToken) && Equals(otherObjectQueryCacheKey._parametersToken, _parametersToken) && Equals(otherObjectQueryCacheKey._resultType, _resultType); } /// /// Returns the hashcode for this cache key /// ///public override int GetHashCode() { return _hashCode; } /// /// Returns a string representation of the state of this cache key /// ////// A string representation that includes query text, parameter information, include path information /// and merge option information about this cache key. /// public override string ToString() { return String.Join("|", new string[] { _defaultContainer, _eSqlStatement, _parametersToken, _includePathsToken, Enum.GetName(typeof(MergeOption), _mergeOption) }); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //----------------------------------------------------------------------------- namespace System.Data.Common.QueryCache { using System; using System.Data.Objects; using System.Diagnostics; ////// Represents an Entity-SQL-based ObjectQuery Cache key context /// internal sealed class EntitySqlQueryCacheKey : QueryCacheKey { ////// Aggregate hashcode based the hashcode of the properties of this cache key /// private readonly int _hashCode; ////// The name of the default container in effect when the Entity-SQL text was parsed /// (affects whether or not the text can be successfully parsed) /// private string _defaultContainer; ////// Entity Sql statement /// private readonly string _eSqlStatement; ////// Parameter collection token /// private readonly string _parametersToken; ////// Number of parameters /// private readonly int _parameterCount; ////// Concatenated representation of the Include span paths /// private readonly string _includePathsToken; ////// The merge option in effect /// private readonly MergeOption _mergeOption; ////// Result type affects assembly plan. /// private readonly Type _resultType; ////// Creates a new instance of ObjectQueryCacheKey given a entityCommand instance /// /// The default container name in effect when parsing the query (may be null) /// The Entity-SQL text of the query /// The number of parameters to the query /// A string representation of the parameters to the query (may be null) /// A string representation of the Include span paths in effect (may be null) /// The merge option in effect. Required for result assembly. internal EntitySqlQueryCacheKey(string defaultContainerName, string eSqlStatement, int parameterCount, string parametersToken, string includePathsToken, MergeOption mergeOption, Type resultType) : base() { Debug.Assert(null != eSqlStatement, "eSqlStatement must not be null"); _defaultContainer = defaultContainerName; _eSqlStatement = eSqlStatement; _parameterCount = parameterCount; _parametersToken = parametersToken; _includePathsToken = includePathsToken; _mergeOption = mergeOption; _resultType = resultType; int combinedHash = _eSqlStatement.GetHashCode() ^ _mergeOption.GetHashCode(); if (_parametersToken != null) { combinedHash ^= _parametersToken.GetHashCode(); } if (_includePathsToken != null) { combinedHash ^= _includePathsToken.GetHashCode(); } if (_defaultContainer != null) { combinedHash ^= _defaultContainer.GetHashCode(); } _hashCode = combinedHash; } ////// Determines equality of two cache keys based on cache context values /// /// ///public override bool Equals(object otherObject) { Debug.Assert(null != otherObject, "otherObject must not be null"); if (typeof(EntitySqlQueryCacheKey) != otherObject.GetType()) { return false; } EntitySqlQueryCacheKey otherObjectQueryCacheKey = (EntitySqlQueryCacheKey)otherObject; // also use result type... return (_parameterCount == otherObjectQueryCacheKey._parameterCount) && (_mergeOption == otherObjectQueryCacheKey._mergeOption) && Equals(otherObjectQueryCacheKey._defaultContainer, _defaultContainer) && Equals(otherObjectQueryCacheKey._eSqlStatement, _eSqlStatement) && Equals(otherObjectQueryCacheKey._includePathsToken, _includePathsToken) && Equals(otherObjectQueryCacheKey._parametersToken, _parametersToken) && Equals(otherObjectQueryCacheKey._resultType, _resultType); } /// /// Returns the hashcode for this cache key /// ///public override int GetHashCode() { return _hashCode; } /// /// Returns a string representation of the state of this cache key /// ////// A string representation that includes query text, parameter information, include path information /// and merge option information about this cache key. /// public override string ToString() { return String.Join("|", new string[] { _defaultContainer, _eSqlStatement, _parametersToken, _includePathsToken, Enum.GetName(typeof(MergeOption), _mergeOption) }); } } } // 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
- ComboBoxAutomationPeer.cs
- SelectionUIService.cs
- StorageScalarPropertyMapping.cs
- RTLAwareMessageBox.cs
- DbProviderFactories.cs
- FrameworkContentElement.cs
- CFStream.cs
- TimelineClockCollection.cs
- Parameter.cs
- RadioButtonStandardAdapter.cs
- ApplicationTrust.cs
- CategoryAttribute.cs
- CalendarTable.cs
- TypefaceCollection.cs
- XMLDiffLoader.cs
- ArrayConverter.cs
- SynchronizationLockException.cs
- UICuesEvent.cs
- TextOutput.cs
- DisableDpiAwarenessAttribute.cs
- sqlinternaltransaction.cs
- LayoutInformation.cs
- EncodingTable.cs
- ConditionalAttribute.cs
- CharacterBuffer.cs
- CompilerInfo.cs
- RelationshipSet.cs
- ContractTypeNameElement.cs
- DataGridViewButtonColumn.cs
- HttpRequestCacheValidator.cs
- WorkflowMarkupSerializationProvider.cs
- TransactionManager.cs
- XPathDescendantIterator.cs
- MissingMethodException.cs
- ProcessInfo.cs
- MultipleViewPattern.cs
- FixedDocumentPaginator.cs
- CreatingCookieEventArgs.cs
- RefreshPropertiesAttribute.cs
- AppliesToBehaviorDecisionTable.cs
- WorkflowEnvironment.cs
- ClosableStream.cs
- ObjectQueryState.cs
- Socket.cs
- ReadOnlyHierarchicalDataSource.cs
- MDIClient.cs
- RoleGroupCollection.cs
- VisualBasicSettingsHandler.cs
- KeyValueConfigurationCollection.cs
- ValidatorCompatibilityHelper.cs
- QilIterator.cs
- SafeMILHandleMemoryPressure.cs
- Utilities.cs
- ListItemViewAttribute.cs
- SharedRuntimeState.cs
- DataGridViewCellMouseEventArgs.cs
- FrameworkTemplate.cs
- PrintPageEvent.cs
- cookieexception.cs
- TargetParameterCountException.cs
- ValueOfAction.cs
- ListViewItemSelectionChangedEvent.cs
- TableRowGroupCollection.cs
- HtmlPanelAdapter.cs
- CodeEntryPointMethod.cs
- ObjectDataSourceWizardForm.cs
- QueryCacheKey.cs
- CodeAssignStatement.cs
- LabelLiteral.cs
- ComponentConverter.cs
- SupportingTokenSecurityTokenResolver.cs
- MaterialCollection.cs
- NamedObjectList.cs
- XmlArrayItemAttribute.cs
- TaskFormBase.cs
- RenderData.cs
- ModelUIElement3D.cs
- SchemaElement.cs
- MetadataProperty.cs
- FillErrorEventArgs.cs
- ConfigurationLocationCollection.cs
- DoubleAnimation.cs
- CompilerScope.Storage.cs
- PolyLineSegment.cs
- XmlUrlResolver.cs
- BinaryConverter.cs
- EncodingTable.cs
- KeyGestureConverter.cs
- Geometry3D.cs
- StateManagedCollection.cs
- GeneralTransformGroup.cs
- BaseWebProxyFinder.cs
- StorageConditionPropertyMapping.cs
- NullableDoubleSumAggregationOperator.cs
- X509ScopedServiceCertificateElementCollection.cs
- MessageBox.cs
- SqlDataSourceAdvancedOptionsForm.cs
- Positioning.cs
- ZipIOCentralDirectoryFileHeader.cs
- SocketAddress.cs