diff --git a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs index a8dfd4cd3a..77b00a41a0 100644 --- a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs +++ b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs @@ -39,6 +39,30 @@ public class PeopleRepository(IDbContextFactory dbProvider, I dbQuery = dbQuery.Take(filter.Limit); } + // Include PeopleBaseItemMap + if (!filter.ItemId.IsEmpty()) + { + var people = dbQuery.ToArray(); + var peopleIds = people.Select(p => p.Id).ToArray(); + + var mappings = context.PeopleBaseItemMap + .AsNoTracking() + .Where(m => peopleIds.Contains(m.PeopleId) && m.ItemId == filter.ItemId) + .ToDictionary(m => m.PeopleId); + + return people.Select(p => + { + var personInfo = Map(p); + if (mappings.TryGetValue(p.Id, out var mapping)) + { + personInfo.Role = mapping.Role; + personInfo.SortOrder = mapping.SortOrder; + } + + return personInfo; + }).ToArray(); + } + return dbQuery.AsEnumerable().Select(Map).ToArray(); }