Fix unique people response for query if no item ID is supplied

This commit is contained in:
Shadowghost
2026-05-05 20:21:44 +02:00
parent 4178e0ebaf
commit 4b8be6bc91

View File

@@ -44,7 +44,15 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I
}
else
{
dbQuery = dbQuery.OrderBy(e => e.Name);
// The Peoples table has one row per (Name, PersonType), so the same person can
// appear multiple times (e.g. as Actor and GuestStar). Collapse to one row per
// name so /Persons doesn't return the same BaseItem id repeatedly.
var representativeIds = dbQuery
.GroupBy(e => e.Name)
.Select(g => g.Min(e => e.Id));
dbQuery = context.Peoples.AsNoTracking()
.Where(p => representativeIds.Contains(p.Id))
.OrderBy(e => e.Name);
}
var count = dbQuery.Count();