瀏覽代碼

Fix Image loading (#14842)

JPVenson 3 天之前
父節點
當前提交
7bb68d8610
共有 1 個文件被更改,包括 16 次插入9 次删除
  1. 16 9
      Jellyfin.Server.Implementations/Item/BaseItemRepository.cs

+ 16 - 9
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 =>