浏览代码

Merge branch 'feature/EFUserData' of https://github.com/JPVenson/jellyfin into feature/EFUserData

JPVenson 8 月之前
父节点
当前提交
5fb4d6a169
共有 4 个文件被更改,包括 24 次插入11 次删除
  1. 1 4
      .devcontainer/devcontainer.json
  2. 0 2
      .gitignore
  3. 1 1
      .vscode/launch.json
  4. 22 4
      Jellyfin.Server.Implementations/Item/BaseItemRepository.cs

+ 1 - 4
.devcontainer/devcontainer.json

@@ -24,8 +24,5 @@
     "hostRequirements": {
         "memory": "8gb",
         "cpus": 4
-    },
-    "mounts": [
-        "source=/opt/docker/data/jellyfin/config10.9.11/metadata/,target=/workspaces/jellyfin/TestData/metadata,type=bind,consistency=cached"
-    ]
+    }
 }

+ 0 - 2
.gitignore

@@ -20,8 +20,6 @@ local.properties
 .settings/
 .loadpath
 
-TestData
-
 # External tool builders
 .externalToolBuilders/
 

+ 1 - 1
.vscode/launch.json

@@ -35,7 +35,7 @@
             "request": "launch",
             "preLaunchTask": "build",
             "program": "${workspaceFolder}/Jellyfin.Server/bin/Debug/net8.0/jellyfin.dll",
-            "args": ["--nowebclient", "--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg", "--datadir", "/workspaces/jellyfin/TestData"],
+            "args": ["--nowebclient", "--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg"],
             "cwd": "${workspaceFolder}/Jellyfin.Server",
             "console": "internalConsole",
             "stopAtEntry": false,

+ 22 - 4
Jellyfin.Server.Implementations/Item/BaseItemRepository.cs

@@ -32,7 +32,6 @@ using Microsoft.Extensions.Logging;
 using BaseItemDto = MediaBrowser.Controller.Entities.BaseItem;
 using BaseItemEntity = Jellyfin.Data.Entities.BaseItemEntity;
 #pragma warning disable RS0030 // Do not use banned APIs
-#pragma warning disable CA1307 // Specify StringComparison for clarity
 
 namespace Jellyfin.Server.Implementations.Item;
 
@@ -299,6 +298,26 @@ public sealed class BaseItemRepository(
             dbQuery = dbQuery.Include(e => e.Images);
         }
 
+        if (filter.DtoOptions.ContainsField(ItemFields.MediaStreams))
+        {
+            dbQuery = dbQuery.Include(e => e.MediaStreams);
+        }
+
+        if (filter.DtoOptions.ContainsField(ItemFields.Chapters))
+        {
+            dbQuery = dbQuery.Include(e => e.Chapters);
+        }
+
+        if (filter.DtoOptions.ContainsField(ItemFields.People))
+        {
+            dbQuery = dbQuery.Include(e => e.Peoples);
+        }
+
+        if (filter.DtoOptions.ContainsField(ItemFields.SeasonUserData))
+        {
+            dbQuery = dbQuery.Include(e => e.UserData);
+        }
+
         return dbQuery;
     }
 
@@ -315,6 +334,7 @@ public sealed class BaseItemRepository(
         return dbQuery.Count();
     }
 
+#pragma warning disable CA1307 // Specify StringComparison for clarity
     private IQueryable<BaseItemEntity> TranslateQuery(
         IQueryable<BaseItemEntity> baseQuery,
         JellyfinDbContext context,
@@ -1343,9 +1363,7 @@ public sealed class BaseItemRepository(
             .Include(e => e.TrailerTypes)
             .Include(e => e.Provider)
             .Include(e => e.Images)
-            .Include(e => e.LockedFields)
-            .AsNoTracking().AsSingleQuery().FirstOrDefault(e => e.Id == id);
-
+            .Include(e => e.LockedFields).AsNoTracking().AsSingleQuery().FirstOrDefault(e => e.Id == id);
         if (item is null)
         {
             return null;