Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Common / QueryCache / EntitySqlQueryCacheKey.cs / 1 / EntitySqlQueryCacheKey.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //----------------------------------------------------------------------------- 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 [....], [....] //----------------------------------------------------------------------------- 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
- XPathEmptyIterator.cs
- ScriptIgnoreAttribute.cs
- PerformanceCounterPermissionEntryCollection.cs
- SafeLocalAllocation.cs
- KerberosTokenFactoryCredential.cs
- UserPersonalizationStateInfo.cs
- InkPresenterAutomationPeer.cs
- ToolboxItemWrapper.cs
- IListConverters.cs
- AssociationTypeEmitter.cs
- MemberDomainMap.cs
- Faults.cs
- DataGridViewCellStyleConverter.cs
- Splitter.cs
- ReadOnlyAttribute.cs
- SystemWebExtensionsSectionGroup.cs
- RemoteWebConfigurationHost.cs
- CompareInfo.cs
- AutoResetEvent.cs
- DragDeltaEventArgs.cs
- remotingproxy.cs
- DetailsViewActionList.cs
- EventHandlersStore.cs
- TextTrailingCharacterEllipsis.cs
- TypeDependencyAttribute.cs
- DbConnectionPoolOptions.cs
- _Connection.cs
- WebBrowserUriTypeConverter.cs
- DeclarativeCatalogPartDesigner.cs
- PopOutPanel.cs
- OdbcReferenceCollection.cs
- ConcurrentDictionary.cs
- HttpRuntimeSection.cs
- CollectionViewProxy.cs
- UIAgentAsyncBeginRequest.cs
- mongolianshape.cs
- BamlLocalizationDictionary.cs
- BuildManagerHost.cs
- ItemAutomationPeer.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- TypedTableBase.cs
- CommonProperties.cs
- BitmapImage.cs
- GridViewPageEventArgs.cs
- CompatibleIComparer.cs
- CodeEventReferenceExpression.cs
- DataMisalignedException.cs
- HierarchicalDataSourceControl.cs
- MsmqHostedTransportManager.cs
- GlobalAclOperationRequirement.cs
- ConditionedDesigner.cs
- ProtocolsConfigurationHandler.cs
- ThemeableAttribute.cs
- EdmType.cs
- DataGridViewColumnHeaderCell.cs
- ClientBuildManagerCallback.cs
- X509Utils.cs
- ConfigurationManagerInternalFactory.cs
- LinkedResourceCollection.cs
- RegexFCD.cs
- TraceRecord.cs
- GridViewRowPresenterBase.cs
- PaintValueEventArgs.cs
- SemanticValue.cs
- HttpModuleActionCollection.cs
- WebPartDisplayModeCancelEventArgs.cs
- PropertyGridDesigner.cs
- precedingsibling.cs
- Semaphore.cs
- DomNameTable.cs
- Simplifier.cs
- EdmSchemaError.cs
- UpdatePanelTriggerCollection.cs
- ToolStripDropTargetManager.cs
- ErrorHandler.cs
- PointValueSerializer.cs
- MemberCollection.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- AttachInfo.cs
- Int32Animation.cs
- AnimationException.cs
- QilInvokeLateBound.cs
- filewebrequest.cs
- OneOfElement.cs
- ContentType.cs
- ExtensionWindowResizeGrip.cs
- OrderedDictionary.cs
- WebServiceTypeData.cs
- IndexerNameAttribute.cs
- Marshal.cs
- SoapAttributeAttribute.cs
- NumericUpDown.cs
- InspectionWorker.cs
- BitmapData.cs
- ExpandCollapsePatternIdentifiers.cs
- EntityCommandExecutionException.cs
- MemoryPressure.cs
- GuidelineCollection.cs
- OracleCommandBuilder.cs
- ZipIOFileItemStream.cs