From 8461268837b1a10fef8bb0c976b017da437bf24a Mon Sep 17 00:00:00 2001 From: andrewrabert Date: Sun, 28 Dec 2025 07:22:13 -0500 Subject: Backport pull request #15666 from jellyfin/release-10.11.z Fix unnecessary database JOINs in ApplyNavigations Original-merge: 4cdd8c8233cc8e2b4ced9be5b7ddbd48f190a3b9 Merged-by: crobibero Backported-by: Bond_009 --- .../Item/BaseItemRepository.cs | 23 ++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'Jellyfin.Server.Implementations') diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs index 9851d53c4..6b060430e 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs @@ -410,10 +410,25 @@ public sealed class BaseItemRepository private static IQueryable ApplyNavigations(IQueryable dbQuery, InternalItemsQuery filter) { - dbQuery = dbQuery.Include(e => e.TrailerTypes) - .Include(e => e.Provider) - .Include(e => e.LockedFields) - .Include(e => e.UserData); + if (filter.TrailerTypes.Length > 0 || filter.IncludeItemTypes.Contains(BaseItemKind.Trailer)) + { + dbQuery = dbQuery.Include(e => e.TrailerTypes); + } + + if (filter.DtoOptions.ContainsField(ItemFields.ProviderIds)) + { + dbQuery = dbQuery.Include(e => e.Provider); + } + + if (filter.DtoOptions.ContainsField(ItemFields.Settings)) + { + dbQuery = dbQuery.Include(e => e.LockedFields); + } + + if (filter.DtoOptions.EnableUserData) + { + dbQuery = dbQuery.Include(e => e.UserData); + } if (filter.DtoOptions.EnableImages) { -- cgit v1.2.3