Skip to content

Commit cb73cd1

Browse files
committed
Make RefsToEntityQueryCache static
1 parent d6a4bf2 commit cb73cd1

File tree

4 files changed

+5
-9
lines changed

4 files changed

+5
-9
lines changed

Orm/Xtensive.Orm/Orm/Internals/Prefetch/EntityGroupTask.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ private QueryTask CreateQueryTask(List<Tuple> currentKeySet)
128128
var parameterContext = new ParameterContext();
129129
parameterContext.SetValue(includeParameter, currentKeySet);
130130
var session = manager.Owner.Session;
131-
Provider = StorageNode.EntityFetchQueryCache.GetOrAdd(cacheKey, CreateRecordSet);
131+
Provider = StorageNode.EntityFetchQueryCache.GetOrAdd(cacheKey, static k => CreateRecordSet(k));
132132
if (session.Domain.TagsEnabled && session.Tags != null) {
133133
foreach (var tag in session.Tags) {
134134
Provider = new TagProvider(Provider, tag);

Orm/Xtensive.Orm/Orm/Internals/Prefetch/EntitySetTask.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ private QueryTask CreateQueryTask()
168168

169169
var session = manager.Owner.Session;
170170
var scope = new CompiledQueryProcessingScope(null, null, parameterContext, false);
171-
QueryProvider = StorageNode.EntitySetFetchQueryCache.GetOrAdd(cacheKey, CreateRecordSetLoadingItems);
171+
QueryProvider = StorageNode.EntitySetFetchQueryCache.GetOrAdd(cacheKey, static k => CreateRecordSetLoadingItems(k));
172172
if (session.Domain.TagsEnabled && session.Tags != null) {
173173
foreach (var tag in session.Tags) {
174174
QueryProvider = new TagProvider(QueryProvider, tag);

Orm/Xtensive.Orm/Orm/Providers/SessionHandler.References.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public virtual IEnumerable<ReferenceInfo> GetReferencesTo(Entity target, Associa
2929
{
3030
if (association.IsPaired)
3131
return FindReferences(target, association, true);
32-
var (recordSet, parameter) = Session.StorageNode.RefsToEntityQueryCache .GetOrAdd(association, BuildReferencingQuery);
32+
var (recordSet, parameter) = StorageNode.RefsToEntityQueryCache.GetOrAdd(association, static k => BuildReferencingQuery(k));
3333
var parameterContext = new ParameterContext();
3434
parameterContext.SetValue(parameter, target.Key.Value);
3535
ExecutableProvider executableProvider = Session.Compile(recordSet);

Orm/Xtensive.Orm/Orm/StorageNode.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,7 @@
44
// Created by: Denis Krjuchkov
55
// Created: 2014.03.13
66

7-
using System;
87
using System.Collections.Concurrent;
9-
using System.Collections.Generic;
10-
using System.Threading;
11-
using System.Threading.Tasks;
128
using Xtensive.Core;
139
using Xtensive.Orm.Configuration;
1410
using Xtensive.Orm.Interfaces;
@@ -31,7 +27,7 @@ public sealed class StorageNode : ISessionSource
3127
/// <summary>
3228
/// Gets node identifier.
3329
/// </summary>
34-
public string Id { get { return Configuration.NodeId; } }
30+
public string Id => Configuration.NodeId;
3531

3632
/// <summary>
3733
/// Gets node configuration.
@@ -71,7 +67,7 @@ public sealed class StorageNode : ISessionSource
7167
/// <summary>
7268
/// Caches queries that get references to entities for certain association.
7369
/// </summary>
74-
internal ConcurrentDictionary<AssociationInfo, (CompilableProvider, Parameter<Xtensive.Tuples.Tuple>)> RefsToEntityQueryCache { get; } = new();
70+
internal static ConcurrentDictionary<AssociationInfo, (CompilableProvider, Parameter<Xtensive.Tuples.Tuple>)> RefsToEntityQueryCache { get; } = new();
7571
internal ConcurrentDictionary<SequenceInfo, CachingSequence> KeySequencesCache { get; } = new();
7672
internal ConcurrentDictionary<PersistRequestBuilderTask, IReadOnlyList<PreparedPersistRequest>> PersistRequestCache { get; } = new();
7773

0 commit comments

Comments
 (0)