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
|
// Include PeopleBaseItemMap
|
||||||
if (!filter.ItemId.IsEmpty())
|
if (!filter.ItemId.IsEmpty())
|
||||||
{
|
{
|
||||||
var people = dbQuery.ToArray();
|
var query = dbQuery
|
||||||
var peopleIds = people.Select(p => p.Id).ToArray();
|
.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
|
return query
|
||||||
.AsNoTracking()
|
.AsEnumerable()
|
||||||
.Where(m => peopleIds.Contains(m.PeopleId) && m.ItemId == filter.ItemId)
|
.Select(p =>
|
||||||
.ToDictionary(m => m.PeopleId);
|
|
||||||
|
|
||||||
return people.Select(p =>
|
|
||||||
{
|
|
||||||
var personInfo = Map(p);
|
|
||||||
if (mappings.TryGetValue(p.Id, out var mapping))
|
|
||||||
{
|
{
|
||||||
personInfo.Role = mapping.Role;
|
var personInfo = Map(p.Person);
|
||||||
personInfo.SortOrder = mapping.SortOrder;
|
personInfo.Role = p.Mapping?.Role;
|
||||||
}
|
personInfo.SortOrder = p.Mapping?.SortOrder;
|
||||||
|
return personInfo;
|
||||||
return personInfo;
|
})
|
||||||
}).ToArray();
|
.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
return dbQuery.AsEnumerable().Select(Map).ToArray();
|
return dbQuery.AsEnumerable().Select(Map).ToArray();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user