Cache null dictionary values by key (#15576)
* Add CacheNullValues option to RepositoryCachePolicy * Cache null values in DictionaryByKeyRepository * Fixed issue with nullable reference. * Updated logic for caching of null values. * Update src/Umbraco.Infrastructure/Cache/DefaultRepositoryCachePolicy.cs Co-authored-by: Sven Geusens <geusens@gmail.com> * Made the NullValueRepresentation overwritable in a generic manner * Improve generic NullValueCachePolicyResolver * Revert Commits and clarify logic with comment This reverts commit 8befb437921cb6e3b87725cefb92a6afbf3d28fb "Improve generic NullValueCachePolicyResolver" Also reverts 8adf0a2 - Made the NullValueRepresentation overwritable in a generic manner And 8adf0a2 - Made the NullValueRepresentation overwritable in a generic manner * Update src/Umbraco.Infrastructure/Cache/DefaultRepositoryCachePolicy.cs --------- Co-authored-by: Andy Butland <abutland73@gmail.com> Co-authored-by: Sven Geusens <geusens@gmail.com> Co-authored-by: Sven Geusens <sge@umbraco.dk>
This commit is contained in:
@@ -11,6 +11,7 @@ public class RepositoryCachePolicyOptions
|
||||
public RepositoryCachePolicyOptions(Func<int> performCount)
|
||||
{
|
||||
PerformCount = performCount;
|
||||
CacheNullValues = false;
|
||||
GetAllCacheValidateCount = true;
|
||||
GetAllCacheAllowZeroCount = false;
|
||||
}
|
||||
@@ -21,6 +22,7 @@ public class RepositoryCachePolicyOptions
|
||||
public RepositoryCachePolicyOptions()
|
||||
{
|
||||
PerformCount = null;
|
||||
CacheNullValues = false;
|
||||
GetAllCacheValidateCount = false;
|
||||
GetAllCacheAllowZeroCount = false;
|
||||
}
|
||||
@@ -30,6 +32,11 @@ public class RepositoryCachePolicyOptions
|
||||
/// </summary>
|
||||
public Func<int>? PerformCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// True if the Get method will cache null results so that the db is not hit for repeated lookups
|
||||
/// </summary>
|
||||
public bool CacheNullValues { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// True/false as to validate the total item count when all items are returned from cache, the default is true but this
|
||||
/// means that a db lookup will occur - though that lookup will probably be significantly less expensive than the
|
||||
|
||||
Reference in New Issue
Block a user