diff --git a/src/Umbraco.Core/Persistence/Mappers/MappingResolver.cs b/src/Umbraco.Core/Persistence/Mappers/MappingResolver.cs index ea44964219..6909c77744 100644 --- a/src/Umbraco.Core/Persistence/Mappers/MappingResolver.cs +++ b/src/Umbraco.Core/Persistence/Mappers/MappingResolver.cs @@ -43,7 +43,7 @@ namespace Umbraco.Core.Persistence.Mappers { return byAttribute.Result; } - throw new Exception("Invalid Type: A Mapper could not be resolved based on the passed in Type"); + throw new Exception("Invalid Type: A Mapper could not be resolved based on the passed in Type " + type); }); } diff --git a/src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs b/src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs index 9379d14af8..41946d48d4 100644 --- a/src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs +++ b/src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs @@ -85,7 +85,7 @@ namespace Umbraco.Core.Persistence.Repositories #region Static Queries - private readonly IQuery _hasIdQuery = Query.Builder.Where(x => x.Id != 0); + private IQuery _hasIdQuery; #endregion @@ -117,6 +117,12 @@ namespace Umbraco.Core.Persistence.Repositories RuntimeCache, new RepositoryCachePolicyOptions(() => { + //create it once if it is needed (no need for locking here) + if (_hasIdQuery == null) + { + _hasIdQuery = Query.Builder.Where(x => x.Id != 0); + } + //Get count of all entities of current type (TEntity) to ensure cached result is correct return PerformCount(_hasIdQuery); })));