From 7bb68d86102834dcda8e6faa736d13c54144d005 Mon Sep 17 00:00:00 2001 From: JPVenson Date: Tue, 23 Sep 2025 16:02:30 +0300 Subject: Fix Image loading (#14842) --- .../Item/BaseItemRepository.cs | 25 ++++++++++++++-------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'Jellyfin.Server.Implementations/Item/BaseItemRepository.cs') diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs index c2e6e7feb..a34e95c4d 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs @@ -381,26 +381,31 @@ public sealed class BaseItemRepository { var tempQuery = dbQuery.GroupBy(e => new { e.PresentationUniqueKey, e.SeriesPresentationUniqueKey }).Select(e => e.FirstOrDefault()).Select(e => e!.Id); dbQuery = context.BaseItems.Where(e => tempQuery.Contains(e.Id)); - dbQuery = ApplyOrder(dbQuery, filter); } else if (enableGroupByPresentationUniqueKey) { var tempQuery = dbQuery.GroupBy(e => e.PresentationUniqueKey).Select(e => e.FirstOrDefault()).Select(e => e!.Id); dbQuery = context.BaseItems.Where(e => tempQuery.Contains(e.Id)); - dbQuery = ApplyOrder(dbQuery, filter); } else if (filter.GroupBySeriesPresentationUniqueKey) { var tempQuery = dbQuery.GroupBy(e => e.SeriesPresentationUniqueKey).Select(e => e.FirstOrDefault()).Select(e => e!.Id); dbQuery = context.BaseItems.Where(e => tempQuery.Contains(e.Id)); - dbQuery = ApplyOrder(dbQuery, filter); } else { dbQuery = dbQuery.Distinct(); - dbQuery = ApplyOrder(dbQuery, filter); } + dbQuery = ApplyOrder(dbQuery, filter); + + dbQuery = ApplyNavigations(dbQuery, filter); + + return dbQuery; + } + + private static IQueryable ApplyNavigations(IQueryable dbQuery, InternalItemsQuery filter) + { dbQuery = dbQuery.Include(e => e.TrailerTypes) .Include(e => e.Provider) .Include(e => e.LockedFields) @@ -411,9 +416,6 @@ public sealed class BaseItemRepository dbQuery = dbQuery.Include(e => e.Images); } - // dbQuery = dbQuery.Distinct(); - // dbQuery = ApplyOrder(dbQuery, filter); - return dbQuery; } @@ -440,7 +442,6 @@ public sealed class BaseItemRepository private IQueryable ApplyQueryFilter(IQueryable dbQuery, JellyfinDbContext context, InternalItemsQuery filter) { dbQuery = TranslateQuery(dbQuery, context, filter); - // dbQuery = ApplyOrder(dbQuery, filter); dbQuery = ApplyGroupingFilter(context, dbQuery, filter); dbQuery = ApplyQueryPaging(dbQuery, filter); return dbQuery; @@ -1322,7 +1323,13 @@ public sealed class BaseItemRepository result.Items = [ .. query - .Select(e => e.First()) + .Select(e => e.AsQueryable() + .Include(e => e.TrailerTypes) + .Include(e => e.Provider) + .Include(e => e.LockedFields) + .Include(e => e.Images) + .AsSingleQuery() + .First()) .AsEnumerable() .Where(e => e is not null) .Select(e => -- cgit v1.2.3