diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index dc0bc13..4e7ea0c 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -3,8 +3,8 @@
true
-
-
+
+
diff --git a/src/GenericQueryable.Runtime/Fetching/FetchRuleExpanderExtensions.cs b/src/GenericQueryable.Abstractions/Fetching/FetchRuleExpanderExtensions.cs
similarity index 100%
rename from src/GenericQueryable.Runtime/Fetching/FetchRuleExpanderExtensions.cs
rename to src/GenericQueryable.Abstractions/Fetching/FetchRuleExpanderExtensions.cs
diff --git a/src/GenericQueryable.Runtime/Fetching/IFetchRuleExpander.cs b/src/GenericQueryable.Abstractions/Fetching/IFetchRuleExpander.cs
similarity index 100%
rename from src/GenericQueryable.Runtime/Fetching/IFetchRuleExpander.cs
rename to src/GenericQueryable.Abstractions/Fetching/IFetchRuleExpander.cs
diff --git a/src/GenericQueryable.Abstractions/Fetching/UntypedFetchRule.cs b/src/GenericQueryable.Abstractions/Fetching/UntypedFetchRule.cs
index 9b74d8f..cf9b6fa 100644
--- a/src/GenericQueryable.Abstractions/Fetching/UntypedFetchRule.cs
+++ b/src/GenericQueryable.Abstractions/Fetching/UntypedFetchRule.cs
@@ -1,3 +1,3 @@
namespace GenericQueryable.Fetching;
-public record UntypedFetchRule(string Path) : FetchRule;
\ No newline at end of file
+public sealed record UntypedFetchRule(string Path) : FetchRule;
\ No newline at end of file
diff --git a/src/GenericQueryable.Runtime/Fetching/FetchRuleHeaderExpander.cs b/src/GenericQueryable.Runtime/Fetching/FetchRuleHeaderExpander.cs
index 3378de3..663e9e9 100644
--- a/src/GenericQueryable.Runtime/Fetching/FetchRuleHeaderExpander.cs
+++ b/src/GenericQueryable.Runtime/Fetching/FetchRuleHeaderExpander.cs
@@ -15,7 +15,7 @@ public class FetchRuleHeaderExpander(IEnumerable fetchRuleH
{
if (fetchRule is FetchRuleHeader fetchRuleHeader)
{
- return cache.GetOrAdd(typeof(TSource),
+ return cache.GetOrAdd(fetchRuleHeader.GetType(),
_ => headersDict
.GetValueOrDefault(typeof(TSource))
.EmptyIfNull()
diff --git a/src/GenericQueryable.Runtime/Fetching/FetchService.cs b/src/GenericQueryable.Runtime/Fetching/FetchService.cs
index 38d1be3..23110bd 100644
--- a/src/GenericQueryable.Runtime/Fetching/FetchService.cs
+++ b/src/GenericQueryable.Runtime/Fetching/FetchService.cs
@@ -11,7 +11,7 @@ namespace GenericQueryable.Fetching;
public abstract class FetchService([FromKeyedServices(RootFetchRuleExpander.Key)] IFetchRuleExpander fetchRuleExpander) : IFetchService
{
- private readonly ConcurrentDictionary> rootCache = [];
+ private readonly ConcurrentDictionary rootCache = [];
public virtual IQueryable ApplyFetch(IQueryable source, FetchRule fetchRule)
where TSource : class => this.GetApplyFetchFunc(fetchRule).Invoke(source);
@@ -20,7 +20,6 @@ private Func, IQueryable> GetApplyFetchFunc new ConcurrentDictionary())
.GetOrAdd(fetchRule.GetType(), _ => new ConcurrentDictionary, Func, IQueryable>>())
.Pipe(v => (ConcurrentDictionary, Func, IQueryable>>)v)
.GetOrAdd(fetchRule, _ =>
diff --git a/src/GenericQueryable.Runtime/Fetching/RootFetchRuleExpander.cs b/src/GenericQueryable.Runtime/Fetching/RootFetchRuleExpander.cs
index aa04970..9ad89f3 100644
--- a/src/GenericQueryable.Runtime/Fetching/RootFetchRuleExpander.cs
+++ b/src/GenericQueryable.Runtime/Fetching/RootFetchRuleExpander.cs
@@ -19,7 +19,7 @@ public class RootFetchRuleExpander(IEnumerable expanders) :
else
{
return cache
- .GetOrAdd(typeof(TSource), _ => new ConcurrentDictionary, PropertyFetchRule?>())
+ .GetOrAdd(fetchRule.GetType(), _ => new ConcurrentDictionary, PropertyFetchRule?>())
.Pipe(innerCache => (ConcurrentDictionary, PropertyFetchRule?>)innerCache)
.GetOrAdd(fetchRule, _ =>
{
diff --git a/src/__SolutionItems/CommonAssemblyInfo.cs b/src/__SolutionItems/CommonAssemblyInfo.cs
index 4fdb881..d58939a 100644
--- a/src/__SolutionItems/CommonAssemblyInfo.cs
+++ b/src/__SolutionItems/CommonAssemblyInfo.cs
@@ -3,7 +3,7 @@
[assembly: AssemblyProduct("GenericQueryable")]
[assembly: AssemblyCompany("IvAt")]
-[assembly: AssemblyVersion("2.1.13.0")]
+[assembly: AssemblyVersion("2.1.14.0")]
[assembly: AssemblyInformationalVersion("changes at build")]
#if DEBUG