diff --git a/Emby.Server.Implementations/Library/UserDataManager.cs b/Emby.Server.Implementations/Library/UserDataManager.cs index 72c8d7a9d2..45a5e1ef94 100644 --- a/Emby.Server.Implementations/Library/UserDataManager.cs +++ b/Emby.Server.Implementations/Library/UserDataManager.cs @@ -236,12 +236,16 @@ namespace Emby.Server.Implementations.Library } /// - public UserItemData? GetUserData(User user, BaseItem item) + public UserItemData GetUserData(User user, BaseItem item) { - return item.UserData?.Where(e => e.UserId.Equals(user.Id)).Select(Map).FirstOrDefault() ?? new UserItemData() - { - Key = item.GetUserDataKeys()[0], - }; + var cacheKey = GetCacheKey(user.InternalId, item.Id); + return _cache.GetOrAdd( + cacheKey, + (k, i) => i.UserData?.Where(e => e.UserId.Equals(user.Id)).Select(Map).FirstOrDefault() ?? new UserItemData() + { + Key = i.GetUserDataKeys()[0], + }, + item); } ///