diff --git a/src/Umbraco.Infrastructure/Scoping/IScopeProvider.cs b/src/Umbraco.Infrastructure/Scoping/IScopeProvider.cs index 816f42aa98..51b7ba874a 100644 --- a/src/Umbraco.Infrastructure/Scoping/IScopeProvider.cs +++ b/src/Umbraco.Infrastructure/Scoping/IScopeProvider.cs @@ -1,5 +1,6 @@ using System.Data; using Umbraco.Cms.Core.Events; +using Umbraco.Cms.Core.Persistence.Querying; using Umbraco.Cms.Infrastructure.Persistence; #if DEBUG_SCOPES @@ -87,6 +88,8 @@ namespace Umbraco.Cms.Core.Scoping /// ISqlContext SqlContext { get; } + IQuery CreateQuery(); + #if DEBUG_SCOPES IEnumerable ScopeInfos { get; } diff --git a/src/Umbraco.Infrastructure/Scoping/ScopeProvider.cs b/src/Umbraco.Infrastructure/Scoping/ScopeProvider.cs index 1633da53df..944c547236 100644 --- a/src/Umbraco.Infrastructure/Scoping/ScopeProvider.cs +++ b/src/Umbraco.Infrastructure/Scoping/ScopeProvider.cs @@ -11,6 +11,7 @@ using Umbraco.Extensions; using System.Collections.Generic; using System.Collections.Concurrent; using System.Threading; +using Umbraco.Cms.Core.Persistence.Querying; #if DEBUG_SCOPES using System.Linq; @@ -60,6 +61,8 @@ namespace Umbraco.Cms.Core.Scoping public ISqlContext SqlContext => DatabaseFactory.SqlContext; + public IQuery CreateQuery() => SqlContext.Query(); + #region Context private void MoveHttpContextScopeToCallContext() diff --git a/src/Umbraco.Infrastructure/Services/Implement/RepositoryService.cs b/src/Umbraco.Infrastructure/Services/Implement/RepositoryService.cs index b1e60b73f4..e529616961 100644 --- a/src/Umbraco.Infrastructure/Services/Implement/RepositoryService.cs +++ b/src/Umbraco.Infrastructure/Services/Implement/RepositoryService.cs @@ -1,4 +1,4 @@ -using System; +using System; using Microsoft.Extensions.Logging; using Umbraco.Cms.Core.Events; using Umbraco.Cms.Core.Persistence.Querying; @@ -12,7 +12,9 @@ namespace Umbraco.Cms.Core.Services.Implement public abstract class RepositoryService : IService { protected IEventMessagesFactory EventMessagesFactory { get; } + protected IScopeProvider ScopeProvider { get; } + protected ILoggerFactory LoggerFactory { get; } protected RepositoryService(IScopeProvider provider, ILoggerFactory loggerFactory, IEventMessagesFactory eventMessagesFactory) @@ -22,6 +24,6 @@ namespace Umbraco.Cms.Core.Services.Implement LoggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); } - protected IQuery Query() => ScopeProvider.SqlContext.Query(); + protected IQuery Query() => ScopeProvider.CreateQuery(); } }