瀏覽代碼

Fixed CustomType serialisation

JPVenson 7 月之前
父節點
當前提交
f397fc5b98
共有 1 個文件被更改,包括 8 次插入1 次删除
  1. 8 1
      Jellyfin.Server.Implementations/Item/BaseItemRepository.cs

+ 8 - 1
Jellyfin.Server.Implementations/Item/BaseItemRepository.cs

@@ -28,6 +28,7 @@ using MediaBrowser.Model.Dto;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.LiveTv;
 using MediaBrowser.Model.Querying;
+using Microsoft.AspNetCore.Http.Json;
 using Microsoft.EntityFrameworkCore;
 using Microsoft.Extensions.Logging;
 using BaseItemDto = MediaBrowser.Controller.Entities.BaseItem;
@@ -1485,12 +1486,18 @@ public sealed class BaseItemRepository(
     /// <returns>The dto to map.</returns>
     public BaseItemEntity Map(BaseItemDto dto)
     {
+        var dtoType = dto.GetType();
         var entity = new BaseItemEntity()
         {
-            Type = dto.GetType().ToString(),
+            Type = dtoType.ToString(),
             Id = dto.Id
         };
 
+        if (TypeRequiresDeserialization(dtoType))
+        {
+            entity.Data = JsonSerializer.Serialize(dto, dtoType, JsonDefaults.Options);
+        }
+
         entity.ParentId = !dto.ParentId.IsEmpty() ? dto.ParentId : null;
         entity.Path = GetPathToSave(dto.Path);
         entity.EndDate = dto.EndDate.GetValueOrDefault();