@@ -128,7 +128,7 @@ private ParameterizedQuery GetScalarQuery<TResult>(
128
128
throw new NotSupportedException ( Strings . ExNonLinqCallsAreNotSupportedWithinQueryExecuteDelayed ) ;
129
129
}
130
130
131
- PutQueryToCacheIfAllowed ( parameterizedQuery ) ;
131
+ PutQueryToCacheIfAllowed ( parameterizedQuery , scope . CheckIfCacheble ) ;
132
132
133
133
return parameterizedQuery ;
134
134
}
@@ -149,7 +149,7 @@ private ParameterizedQuery GetSequenceQuery<TElement>(
149
149
parameterizedQuery = ( ParameterizedQuery ) translatedQuery ;
150
150
}
151
151
152
- PutQueryToCacheIfAllowed ( parameterizedQuery ) ;
152
+ PutQueryToCacheIfAllowed ( parameterizedQuery , scope . CheckIfCacheble ) ;
153
153
154
154
return parameterizedQuery ;
155
155
}
@@ -266,16 +266,15 @@ private static bool IsTypeCacheable(Type type, IReadOnlySet<Type> supportedTypes
266
266
private ParameterizedQuery GetCachedQuery ( ) =>
267
267
domain . QueryCache . TryGetItem ( queryKey , true , out var item ) ? item . Second : null ;
268
268
269
- private void PutQueryToCacheIfAllowed ( ParameterizedQuery parameterizedQuery ) {
270
- if ( IsQueryCacheable ( ) ) {
271
- domain . QueryCache . Add ( new Pair < object , ParameterizedQuery > ( queryKey , parameterizedQuery ) ) ;
272
- }
273
- else {
269
+ private void PutQueryToCacheIfAllowed ( ParameterizedQuery parameterizedQuery , in bool checkIfCacheable ) {
270
+ if ( checkIfCacheable && ! IsQueryCacheable ( ) ) {
274
271
// no .resx used because it is hot path.
275
272
if ( OrmLog . IsLogged ( Logging . LogLevel . Info ) )
276
273
OrmLog . Info ( "Query can't be cached because closure type it has references to captures reference" +
277
274
" type instances. This will lead to long-living objects in memory." ) ;
275
+ return ;
278
276
}
277
+ domain . QueryCache . Add ( new Pair < object , ParameterizedQuery > ( queryKey , parameterizedQuery ) ) ;
279
278
}
280
279
281
280
private ParameterContext CreateParameterContext ( ParameterizedQuery query )
0 commit comments