44// Created by: Alexander Nikolaev
55// Created: 2009.10.20
66
7- using System ;
8- using System . Collections . Generic ;
9- using System . Linq ;
107using Xtensive . Collections ;
118using Xtensive . Core ;
129using Xtensive . Orm . Model ;
@@ -33,11 +30,17 @@ public override bool Equals(object obj) =>
3330
3431 // Constructors
3532
36- public RecordSetCacheKey ( IReadOnlyList < ColNum > columnIndexes , TypeInfo type , int cachedHashCode )
33+ public RecordSetCacheKey ( IReadOnlyList < ColNum > columnIndexes , TypeInfo type )
3734 {
3835 ColumnIndexes = columnIndexes ;
3936 Type = type ;
40- this . cachedHashCode = cachedHashCode ;
37+
38+ HashCode hashCode = new ( ) ;
39+ foreach ( var columnIndex in columnIndexes ) {
40+ hashCode . Add ( columnIndex ) ;
41+ }
42+ hashCode . Add ( type ) ;
43+ cachedHashCode = hashCode . ToHashCode ( ) ;
4144 }
4245 }
4346
@@ -125,7 +128,7 @@ private QueryTask CreateQueryTask(List<Tuple> currentKeySet)
125128 var parameterContext = new ParameterContext ( ) ;
126129 parameterContext . SetValue ( includeParameter , currentKeySet ) ;
127130 var session = manager . Owner . Session ;
128- Provider = session . StorageNode . EntityFetchQueryCache . GetOrAdd ( cacheKey , CreateRecordSet ) ;
131+ Provider = manager . Owner . Session . Domain . EntityFetchQueryCache . GetOrAdd ( cacheKey , static k => CreateRecordSet ( k ) ) ;
129132 if ( session . Domain . TagsEnabled && session . Tags != null ) {
130133 foreach ( var tag in session . Tags ) {
131134 Provider = new TagProvider ( Provider , tag ) ;
@@ -192,13 +195,7 @@ public EntityGroupTask(TypeInfo type, IReadOnlyList<ColNum> columnIndexes, Prefe
192195
193196 this . type = type ;
194197 this . manager = manager ;
195- var cachedHashCode = 0 ;
196- foreach ( var columnIndex in columnIndexes ) {
197- cachedHashCode = unchecked ( 379 * cachedHashCode + columnIndex ) ;
198- }
199-
200- cachedHashCode ^= type . GetHashCode ( ) ;
201- cacheKey = new RecordSetCacheKey ( columnIndexes , type , cachedHashCode ) ;
198+ cacheKey = new RecordSetCacheKey ( columnIndexes , type ) ;
202199 }
203200 }
204201}
0 commit comments