Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CharacterHit.cs
- SapiRecoContext.cs
- ComponentCollection.cs
- HitTestFilterBehavior.cs
- ActivationWorker.cs
- Page.cs
- SqlExpressionNullability.cs
- InfoCardMetadataExchangeClient.cs
- ProgressChangedEventArgs.cs
- HandleCollector.cs
- Vector3D.cs
- OracleNumber.cs
- OuterGlowBitmapEffect.cs
- AbstractDataSvcMapFileLoader.cs
- SHA384Cng.cs
- DictionaryBase.cs
- ContentElement.cs
- UInt64.cs
- SocketAddress.cs
- SQLDecimalStorage.cs
- DefaultWorkflowSchedulerService.cs
- DataGridViewSelectedRowCollection.cs
- Image.cs
- TableHeaderCell.cs
- TextAdaptor.cs
- MarkupCompilePass1.cs
- DataControlLinkButton.cs
- PackageFilter.cs
- DrawingContextWalker.cs
- TextBoxBase.cs
- MSAAEventDispatcher.cs
- XamlHostingSection.cs
- HScrollBar.cs
- DataControlCommands.cs
- FormattedText.cs
- LinkArea.cs
- SecurityPermission.cs
- CodeTypeReference.cs
- WebPartDescription.cs
- BindingGroup.cs
- AddInStore.cs
- MembershipUser.cs
- ProtocolsSection.cs
- Transform.cs
- PageTheme.cs
- GridItemProviderWrapper.cs
- ResourceDisplayNameAttribute.cs
- RootProfilePropertySettingsCollection.cs
- WarningException.cs
- XmlSerializationWriter.cs
- PropertyCollection.cs
- RuntimeHelpers.cs
- ParseHttpDate.cs
- Matrix3DValueSerializer.cs
- FormViewUpdateEventArgs.cs
- HttpWebRequestElement.cs
- EntityParameterCollection.cs
- CodeSnippetStatement.cs
- XPathDocumentNavigator.cs
- XsdCachingReader.cs
- RoleServiceManager.cs
- EntityTypeBase.cs
- SiteOfOriginContainer.cs
- CacheForPrimitiveTypes.cs
- ObjectDisposedException.cs
- DataReceivedEventArgs.cs
- TypeGeneratedEventArgs.cs
- CatalogZone.cs
- StringOutput.cs
- GifBitmapDecoder.cs
- _SslState.cs
- TempFiles.cs
- CacheRequest.cs
- DataGridItemEventArgs.cs
- AppearanceEditorPart.cs
- RNGCryptoServiceProvider.cs
- ByteAnimationUsingKeyFrames.cs
- DetailsViewUpdatedEventArgs.cs
- FontNamesConverter.cs
- RelationalExpressions.cs
- SpotLight.cs
- ExpressionNode.cs
- Style.cs
- SymmetricKey.cs
- HwndKeyboardInputProvider.cs
- WhitespaceRuleReader.cs
- UnsignedPublishLicense.cs
- ScrollBar.cs
- WebPartZoneBase.cs
- ReadOnlyNameValueCollection.cs
- InstancePersistence.cs
- CompositeDataBoundControl.cs
- BridgeDataRecord.cs
- FileStream.cs
- ListControl.cs
- NumericUpDownAccelerationCollection.cs
- WebPartConnectionsEventArgs.cs
- TrackPoint.cs
- XmlDictionaryReaderQuotas.cs
- DataControlField.cs