diff --git a/src/Umbraco.Core/Services/ContentService.cs b/src/Umbraco.Core/Services/ContentService.cs
index 60a631e266..1f40dee264 100644
--- a/src/Umbraco.Core/Services/ContentService.cs
+++ b/src/Umbraco.Core/Services/ContentService.cs
@@ -614,14 +614,7 @@ public class ContentService : RepositoryService, IContentService
/// An Enumerable list of objects
/// Contrary to most methods, this method filters out trashed content items.
public IEnumerable GetByLevel(int level)
- {
- using (ICoreScope scope = ScopeProvider.CreateCoreScope(autoComplete: true))
- {
- scope.ReadLock(Constants.Locks.ContentTree);
- IQuery? query = Query().Where(x => x.Level == level && x.Trashed == false);
- return _documentRepository.Get(query);
- }
- }
+ => QueryOperationService.GetByLevel(level);
///
/// Gets a specific version of an item.
diff --git a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceRefactoringTests.cs b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceRefactoringTests.cs
index 4e996cd09a..ba2c5a1392 100644
--- a/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceRefactoringTests.cs
+++ b/tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/ContentServiceRefactoringTests.cs
@@ -746,6 +746,24 @@ internal sealed class ContentServiceRefactoringTests : UmbracoIntegrationTestWit
Assert.That(facadeCount, Is.EqualTo(directCount));
}
+ ///
+ /// Phase 2 Test: Verifies GetByLevel() via facade returns same result as direct service call.
+ ///
+ [Test]
+ public void GetByLevel_ViaFacade_ReturnsEquivalentResultToDirectService()
+ {
+ // Arrange
+ var queryService = GetRequiredService();
+
+ // Act
+ var facadeItems = ContentService.GetByLevel(1).ToList();
+ var directItems = queryService.GetByLevel(1).ToList();
+
+ // Assert
+ Assert.That(facadeItems.Count, Is.EqualTo(directItems.Count));
+ Assert.That(facadeItems.Select(x => x.Id), Is.EquivalentTo(directItems.Select(x => x.Id)));
+ }
+
#endregion
///