mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-06-03 05:34:16 -04:00
Fixed Transaction for Userdata
This commit is contained in:
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…
x
Reference in New Issue
Block a user