Fixed Transaction for Userdata

pull/12798/head
JPVenson 3 months ago
parent d4aca84581
commit 37129f7952

@ -59,26 +59,27 @@ namespace Emby.Server.Implementations.Library
var keys = item.GetUserDataKeys(); var keys = item.GetUserDataKeys();
var userId = user.InternalId; using var dbContext = _repository.CreateDbContext();
using var transaction = dbContext.Database.BeginTransaction();
using var repository = _repository.CreateDbContext();
foreach (var key in keys) foreach (var key in keys)
{ {
userData.Key = key; userData.Key = key;
var userDataEntry = Map(userData, user.Id, item.Id); var userDataEntry = Map(userData, user.Id, item.Id);
if (repository.UserData.Any(f => f.ItemId == item.Id && f.UserId == user.Id && f.CustomDataKey == key)) if (dbContext.UserData.Any(f => f.ItemId == userDataEntry.ItemId && f.UserId == userDataEntry.UserId && f.CustomDataKey == userDataEntry.CustomDataKey))
{ {
repository.UserData.Attach(userDataEntry).State = EntityState.Modified; dbContext.UserData.Attach(userDataEntry).State = EntityState.Modified;
} }
else else
{ {
repository.UserData.Add(userDataEntry); dbContext.UserData.Add(userDataEntry);
} }
} }
repository.SaveChanges(); dbContext.SaveChanges();
transaction.Commit();
var userId = user.InternalId;
var cacheKey = GetCacheKey(userId, item.Id); var cacheKey = GetCacheKey(userId, item.Id);
_userData.AddOrUpdate(cacheKey, userData, (_, _) => userData); _userData.AddOrUpdate(cacheKey, userData, (_, _) => userData);

Loading…
Cancel
Save