Explorar o código

Change PeopleBaseItemMap query from GroupJoin to Include

Lampan-git hai 3 meses
pai
achega
e137a06362
Modificáronse 1 ficheiros con 7 adicións e 11 borrados
  1. 7 11
      Jellyfin.Server.Implementations/Item/PeopleRepository.cs

+ 7 - 11
Jellyfin.Server.Implementations/Item/PeopleRepository.cs

@@ -42,20 +42,16 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I
         // Include PeopleBaseItemMap
         if (!filter.ItemId.IsEmpty())
         {
-            var query = dbQuery
-                .GroupJoin(
-                    context.PeopleBaseItemMap.AsNoTracking().Where(m => m.ItemId == filter.ItemId),
-                    person => person.Id,
-                    mapping => mapping.PeopleId,
-                    (person, mappings) => new { Person = person, Mapping = mappings.FirstOrDefault() });
-
-            return query
+            dbQuery = dbQuery.Include(p => p.BaseItems!.Where(m => m.ItemId == filter.ItemId));
+
+            return dbQuery
                 .AsEnumerable()
                 .Select(p =>
                 {
-                    var personInfo = Map(p.Person);
-                    personInfo.Role = p.Mapping?.Role;
-                    personInfo.SortOrder = p.Mapping?.SortOrder;
+                    var personInfo = Map(p);
+                    var mapping = p.BaseItems?.FirstOrDefault();
+                    personInfo.Role = mapping?.Role;
+                    personInfo.SortOrder = mapping?.SortOrder;
                     return personInfo;
                 })
                 .ToArray();