mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
Change GetPeople PeopleBaseItemMap code to query
This commit is contained in:
parent
d28ee96f06
commit
4e3d7383f5
@ -42,25 +42,23 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I
|
||||
// Include PeopleBaseItemMap
|
||||
if (!filter.ItemId.IsEmpty())
|
||||
{
|
||||
var people = dbQuery.ToArray();
|
||||
var peopleIds = people.Select(p => p.Id).ToArray();
|
||||
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() });
|
||||
|
||||
var mappings = context.PeopleBaseItemMap
|
||||
.AsNoTracking()
|
||||
.Where(m => peopleIds.Contains(m.PeopleId) && m.ItemId == filter.ItemId)
|
||||
.ToDictionary(m => m.PeopleId);
|
||||
|
||||
return people.Select(p =>
|
||||
return query
|
||||
.AsEnumerable()
|
||||
.Select(p =>
|
||||
{
|
||||
var personInfo = Map(p);
|
||||
if (mappings.TryGetValue(p.Id, out var mapping))
|
||||
{
|
||||
personInfo.Role = mapping.Role;
|
||||
personInfo.SortOrder = mapping.SortOrder;
|
||||
}
|
||||
|
||||
var personInfo = Map(p.Person);
|
||||
personInfo.Role = p.Mapping?.Role;
|
||||
personInfo.SortOrder = p.Mapping?.SortOrder;
|
||||
return personInfo;
|
||||
}).ToArray();
|
||||
})
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
return dbQuery.AsEnumerable().Select(Map).ToArray();
|
||||
|
Loading…
x
Reference in New Issue
Block a user