diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs index 517c004e0f..98c17b74e4 100644 --- a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs @@ -488,11 +488,16 @@ namespace Umbraco.Core.Persistence.Repositories public IEnumerable GetByPublishedVersion(IQuery query) { + // we WANT to return contents in top-down order, ie parents should come before children + // ideal would be pure xml "document order" which can be achieved with: + // ORDER BY substring(path, 1, len(path) - charindex(',', reverse(path))), sortOrder + // but that's probably an overkill - sorting by level,sortOrder should be enough + var sqlClause = GetBaseQuery(false); var translator = new SqlTranslator(sqlClause, query); var sql = translator.Translate() .Where(x => x.Published) - .OrderByDescending(x => x.VersionDate) + .OrderBy(x => x.Level) .OrderBy(x => x.SortOrder); //NOTE: This doesn't allow properties to be part of the query @@ -610,4 +615,4 @@ namespace Umbraco.Core.Persistence.Repositories return currentName; } } -} \ No newline at end of file +}