diff options
| author | JPVenson <github@jpb.email> | 2025-09-23 16:02:30 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-23 07:02:30 -0600 |
| commit | 7bb68d86102834dcda8e6faa736d13c54144d005 (patch) | |
| tree | 77a4c60683bda2c49905cde31405ee58c4260fd4 /Jellyfin.Server.Implementations/Item/BaseItemRepository.cs | |
| parent | 27047c35a43bf0437d6f215b92485c45b4b355c6 (diff) | |
Fix Image loading (#14842)
Diffstat (limited to 'Jellyfin.Server.Implementations/Item/BaseItemRepository.cs')
| -rw-r--r-- | Jellyfin.Server.Implementations/Item/BaseItemRepository.cs | 25 |
1 files changed, 16 insertions, 9 deletions
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<BaseItemEntity> ApplyNavigations(IQueryable<BaseItemEntity> 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<BaseItemEntity> ApplyQueryFilter(IQueryable<BaseItemEntity> 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<BaseItemEntity, (BaseItemDto, ItemCounts?)>(e => |
